일주일 전에 CorePlot을 다운로드했으며 내 MAC 응용 프로그램 프로젝트 중 하나에 포함 시켰습니다. 모든 디버그에서 잘 작동하지만 난initWithFrame의 인수 1에 CorePlot 호환되지 않는 유형
pieChart = [[CPXYGraph alloc] initWithFrame:CGRectZero];
일주일 전에 CorePlot을 다운로드했으며 내 MAC 응용 프로그램 프로젝트 중 하나에 포함 시켰습니다. 모든 디버그에서 잘 작동하지만 난initWithFrame의 인수 1에 CorePlot 호환되지 않는 유형
pieChart = [[CPXYGraph alloc] initWithFrame:CGRectZero];
CPXYGraph
은 CALayer
이므로 CGRectZero
이 정확합니다. 문제는 두 개 이상의 클래스가 -initWithFrame:
메소드를 가지고 있다는 것입니다. +alloc
은 id
을 반환하므로 컴파일러는 선택할 클래스를 알지 못하며 때로는 잘못된 클래스를 선택합니다. 다음과 같이 유형 캐스트를 사용하여이를 해결할 수 있습니다.
pieChart = [(CPXYGraph *)[CPXYGraph alloc] initWithFrame:CGRectZero];
하면 ... 그것은 "initWithFrame의 인수 1 호환되지 않는 유형"이 오류
다음가 일어나고있다 실패 배포 빌드를 사용하여 빌드 할 때 이것은 Mac OS X 응용 프로그램 용입니다. UIKit과 달리 Application Kit는 일반적으로 NS * 구조의 지오메트리를 사용합니다. 따라서 CGRectZero가 아닌 NSZeroRect를 원합니다. 또한 이러한 구조를 생성 할 때는 CoreGraphics CGRectMake(x, y, w, h)
대신 NSMakeRect(x, y, w, h)
매크로를 사용하는 것이 좋습니다.
안녕 Jason, 답장을 보내 주셔서 감사합니다. NSZeroRect로 변경했습니다. 이제 오류가 여기에서 사라졌지 만 coreplot의 다른 클래스에 대해이 6 가지 오류를 모두 얻고 있습니다. 그들 중 하나는 ld입니다 : 경고 : /Users/.../Source/build/Debug/CorePlot.framework/CorePlot 파일은 링크 된 아키텍처가 아닌 지원되지 않는 파일 형식으로 작성되었습니다 (i386) .obj_class_name_CPTextLayer "참조 from : – Leo
안녕하세요, 에릭, 답장을 보내 주셔서 감사합니다. 나 일하는 중이 야. 내가 일을 끝내고 알리면 그 일이 끝날거야. – Leo
나는 그 에릭을 시험해 보았고 불행히도 같은 6 가지 오류가있다. ld : 경고 : /Users/.../Source/build/Debug/CorePlot.framework/CorePlot 파일이 링크 된 아키텍처가 아닌 지원되지 않는 파일 형식으로 작성되었습니다 (i386). 어떤 아이디어? – Leo
코어 플롯 프로젝트 빌드 설정에서 빌드 아키텍처 설정을 확인하십시오. 깨끗한 빌드가 필요할 수도 있습니다. –