Несовместимый тип CorePlot для аргумента 1 initWithFrame - PullRequest
0 голосов
/ 22 марта 2011

Я скачал CorePlot неделю назад и включил в один из моих проектов приложений MAC.В Debug все работает нормально, но когда я пытаюсь собрать его с помощью сборки Distribution, происходит сбой с этой ошибкой "несовместимый тип для аргумента 1 initWithFrame"

Вот где это происходит ...

pieChart = [[CPXYGraph alloc] initWithFrame:CGRectZero];

Ответы [ 2 ]

1 голос
/ 22 марта 2011

Если это для приложения Mac OS X, в отличие от UIKit, Application Kit обычно берет геометрию из структур NS *.Итак, вы хотите NSZeroRect, а не CGRectZero.Кроме того, при создании этих структур вы захотите использовать макрос NSMakeRect(x, y, w, h) вместо CoreGraphics CGRectMake(x, y, w, h).

0 голосов
/ 23 марта 2011

CPXYGraph является CALayer, поэтому CGRectZero является правильным. Проблема в том, что более чем в одном классе есть метод -initWithFrame:. +alloc возвращает id, поэтому компилятор не знает, какой класс выбрать, и иногда он выбирает неправильный. Вы можете решить это с помощью приведения типа, например так:

pieChart = [(CPXYGraph *)[CPXYGraph alloc] initWithFrame:CGRectZero];
...