2010-11-20 12 views
0

複数のオブジェクトを含むメッセージを送信しようとしていますが、動作させることができません。これは、1つのメッセージ(objectsArray)を使用して完全に動作しますが、両方は使用できません。オブジェクトにメッセージを送信する

PlayerData.h:

- (void)savePlayerData:(NSArray *)objectsArray andKey:(NSString *)keyString; 

PlayerData.m:

- (void)savePlayerData:(NSArray *)objectsArray andkey:(NSString *)keyString { 

私は別.MからPlayerDataを呼び出そうところ以下の通りです:

NSString *keyString = [[NSString alloc] init]; 
    keyString = @"key test"; 
    PlayerData *accessPlayerDataFunction = [PlayerData new]; 
    [accessPlayerDataFunction savePlayerData:objs andKey:keyString]; 

OBJSですNSArray。

私が手にエラーがある:

警告:クラスの不完全な実装 'PlayerData' 警告:メソッドの定義 '-savePlayerData:andKeyは:' の

+1

行をコードとして書式設定するには、4つのスペースをインデントすることができます。エディタツールバーの "101 \ n010"ボタンがこれを行います。書式設定の詳細とヒントについては、エディタツールバーのオレンジ色の疑問符をクリックしてください。 – outis

答えて

4

を見つけていない問題があることです実装内のセレクタ名に誤字があります( ".m"ファイル)。もしandKey(キャメルケース)

(void)savePlayerData:(NSArray *)objectsArray andKey:(NSString *)keyString; 

し、andkey(NOキャメルケース)

それとは別に
(void)savePlayerData:(NSArray *)objectsArray andkey:(NSString *)keyString 

を有する実装では、あなたがメモリリークを書き込むヘッダに

@ "key test"を変数に代入すると、前に行を割り当てた元のオブジェクトへの参照が緩くなります。 @ "key test"をkeyStringに割り当てることができます。

+0

はkeyString i newを使ってリークし、テストのためだけに使用します。 – PeterK

+0

ラクダの場合説明わかりませんが分かりません。 andKeyはラクダのケースですか?答えを少し説明できたら本当にありがたいです。 – PeterK

+0

はいandKeyはラクダの場合です。 .hファイルではラクダケースを使用し、.mファイルではラクダケースを使用しません。そのため、コンパイラは実装を見つけることができません。 Cと同様に、Objective-Cでは大文字と小文字が区別されます。 –

関連する問題