-(void)
同じ戻り値の型のメソッドを呼び出すと問題が発生しますclass
問題は次のとおりです。Instance method - someMethodName not found (return type defaults to 'id')
ファイルで宣言someMethodName
します.h
。
問題は、Xcode がメソッドの宣言を見つけられないことです。Xcode の最新バージョンでは、実装.m
が呼び出し元と同じである場合、メソッドの宣言を提供する必要はありません。例えば:
//ExampleClass.m
@implementation ExampleClass
-(void)aMethod {
[self anotherMethod]; //Xcode can see anotherMethod so doesn't need a declaration.
}
-(void)anotherMethod {
//...
}
@end
ただし、以前のバージョンの Xcode では、宣言を提供する必要がありました。@interface
ファイル内でこれを行うことができ.h
ます:
//example.h
@interface ExampleClass : NSObject
-(void)anotherMethod;
@end
宣言を に入れることの問題.h
は、他のすべてのクラスがメソッドを見ることができ、問題が発生する可能性があることです。これを回避するには、 内でクラスの継続を宣言できます.m
。
//ExampleClass.m
@interface ExampleClass ()
-(void)anotherMethod;
@end
@implementation ExampleClass
//...
@end