2012-01-19 16 views
0

もちろん、ヘッダーファイル内のすべてのメソッドを宣言することがベストプラクティスですので、xcodeからインスタンスメソッドが見つからないことを警告するときに感謝します。ただし、ヘッダーにメソッドを宣言していない場合があり、警告が表示されない場合があります。これらは間違いなく委譲メソッドではないので、他のどのような場合にこの動作が発生しますか?なぜxcodeはヘッダファイルに宣言されていないインスタンスメソッドを見つけるのですか?

答えて

2

おそらく、このメソッドは、使用される時点までに実装で既に定義されています。つまり、使用されているメソッドが実装ファイルで使用されている場所の上にある場合、コンパイラはメソッドのシグネチャを知っているので、すべて正常です。

1

メソッドがヘッダーファイル(またはクラス拡張)で宣言されていないが、参照している別のメソッドの前にある場合、エラーは発生しません。

1

あなたがの下で、あなたのメソッド本体の定義をあなたの方法を呼び出した場合、それはのように、動作します:あなたはあまりにもその周りに他の方法は、(あなたのヘッダファイル内のメソッドもない場合)クラッシュした場合

-(void)foo { bla } 
[self foo]; 

[self foo]; 
-(void)foo { bla } 
関連する問題