Параметр xcode4 несовместимого типа

Проект, который отлично работает на Xcode3, не может скомпилировать Xcode4 с этой ошибкой:

Файл://localhost/users/Ishaq/Projects/game01/libs/cocos2d/CCLayer.m: Ошибка: Semantic Issue: Отправка 'ccColor4B' (aka 'struct _ccColor4B') к параметру несовместимого типа "CIColor *"

код, который вызывает эту ошибку, ниже (из cocos2d-iphone CCLayer.m):

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

Как-то Xcode думает, что этот код вызывает - (id)initWithColor:(CIColor *)color; из CIImage (внутри CIImage.h). Как я могу настроить Xcode brain прямо?; -)

Ответ 1

У меня такая же проблема. Мое решение состояло в том, чтобы явным образом использовать его надлежащим образом, что помогает компилятору найти подходящий класс. Таким образом, код выглядит следующим образом:

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

Ответ 2

Вы можете изменить self на фактическое имя класса CCLayer, которое должно указывать Xcode в правильном направлении.

Ответ 3

То же самое произошло со мной при использовании компилятора LLVM GCC 4.2. Изменение параметра компилятора на "Apple LLVM Compiler 3.0" исправило его.