2012年5月28日月曜日

Unknown type name 'MyClass'; did you mean 'SomeClass'?



Unknown type name 'MyClass'; did you mean 'SomeClass'?

クラス名が解決できない場合に出るメッセージですが、ヘッダファイルをimportしているのに発生することがあります。その場合は相互参照している可能性があります。

次のような場合に発生します。

#import "MyClass2.h"
@interface MyClass1
@property MyClass2 *myClass2;
@end

#import "MyClass1.h"
@interface MyClass2
@property MyClass1 *myClass1;
@end

この場合は一方のクラスでimportの代わりに@classを使うようにすると解決します。

@class MyClass2;
@interface MyClass1
@property MyClass2 *myClass2;
@end

#import "MyClass1.h"
@interface MyClass2
@property MyClass1 *myClass1;
@end

MyClass1のimplementationでMyClass2をimportする必要があります。

0 件のコメント: