CorePlot与initWithFrame的参数1不兼容

时间:2011-03-22 20:31:03

标签: objective-c xcode macos core-plot

我在一周前下载了CorePlot,并已包含在我的一个MAC应用程序项目中。在Debug中一切正常,但是当我尝试使用Distribution构建它时,它失败并出现此错误“initWithFrame的参数1的不兼容类型”

这是它正在发生的地方......

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

2 个答案:

答案 0 :(得分:1)

如果这适用于Mac OS X应用程序,与UIKit不同,Application Kit通常采用NS *结构中的几何体。所以,你需要NSZeroRect,而不是CGRectZero。此外,当您生成这些结构时,您将需要使用宏NSMakeRect(x, y, w, h)而不是CoreGraphics CGRectMake(x, y, w, h)

答案 1 :(得分:0)

CPXYGraphCALayer,因此CGRectZero是正确的。问题是不止一个类有-initWithFrame:方法。 +alloc返回id,因此编译器不知道要选择哪个类,有时它会选择错误的类。您可以使用类型转换解决此问题,如下所示:

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