0

-(void)同じ戻り値の型のメソッドを呼び出すと問題が発生しますclass

問題は次のとおりです。Instance method - someMethodName not found (return type defaults to 'id')

4

2 に答える 2

1

ファイルで宣言someMethodNameします.h

于 2012-07-30T13:26:18.180 に答える
0

問題は、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
于 2012-07-30T13:36:18.910 に答える