不兼容类型的xcode4参数

时间:2011-07-21 17:37:26

标签: ios xcode4 ios4

在Xcode3上运行良好的项目无法在Xcode4上编译并出现此错误:

  

文件://localhost/users/Ishaq/Projects/game01/libs/cocos2d/CCLayer.m:   错误:语义问题:发送'ccColor4B'(又名'struct _ccColor4B')   到不兼容类型'CIColor *'

的参数

抛出此错误的代码如下(来自cocos2d-iphone CCLayer.m):

+ (id) layerWithColor:(ccColor4B)color
{
     return [[[self alloc] initWithColor:color] autorelease];
}

Xcode认为此代码正在调用- (id)initWithColor:(CIColor *)color;的{​​{1}}(CIImage内)。如何设置Xcode的大脑? ; - )

3 个答案:

答案 0 :(得分:31)

我遇到了同样的问题。我的解决方案是明确地转换它正确的类型,这有助于编译器找到合适的类。所以代码看起来像这样:

return [[(CCColorLayer*)[self alloc] initWithColor:color] autorelease];

答案 1 :(得分:1)

您可以将self更改为实际的类名CCLayer,它应该将Xcode指向正确的方向。

答案 2 :(得分:1)

使用“LLVM GCC 4.2”编译器时,我发生了同样的事情。将编译器设置更改为“Apple LLVM Compiler 3.0”修复了它。