2011-07-21 28 views
0

NSMutableDictionaryとPlayerオブジェクトをパラメータとするプライベートメソッドを実装しようとしています。プライベートメソッドであるため、存在する唯一の場所は ".m"ファイルです。初心者の質問複数のパラメータ

それは

-(void) incrementScore: (NSMutableDictionary*) scoreboard forPlayer: (Player*) player { 

として宣言され、次のように私はそれを呼び出す:

 [ self incrementScore:deuceScore forPlayer:p]; 

しかし、それはコンパイルされません - 私は

がメッセージに応答しないことがあり得ますインクリメンタルスコア:forplayer

エラーがどこにあるのかわかりません - ".h"ファイルや ".m"ファイルのどこかにメソッドを宣言する必要があるのですか、まったく間違った構文になっていますか?

+0

ここで簡単に答えを見つけることができます:http://stackoverflow.com/questions/722651/how-do-i-pass-multiple-parameters-in-objective-c – Dimitri

答えて

0

コンパイラは、使用する前にメソッドの宣言を見つける必要があります。これは、3つの方法で行うこと:

  1. は、その.hファイル内のクラスのための(パブリック)@interfaceでメソッドを宣言します。
  2. class extension(セミプライベート@interface、通常は.mファイルの先頭)でメソッドを宣言します。
  3. メソッドを最初に使用する前に@implementationのどこかに定義します。
0

これはコンパイルエラーではなく警告です(エラーのようなすべての警告を処理するように設定を変更した場合、コンパイルエラーになります)。

おそらく、メソッドを呼び出す行は(.mファイル内で)宣言メソッドです。メソッドを@implementationディレクティブのすぐ下に移動するか、メソッドを呼び出し側のラインの上に移動します。警告/エラーはディサッパーでなければなりません。