2011-10-22 9 views
13

私は実際に何が起こっているのか分かりません。NSData isEqualtoData

私は、NSDataオブジェクトreceivedStreamから最初の3バイトを取得し、それを別のNSDataオブジェクトtempにchar配列を介して渡す関数を持っています。次にそれをchar配列バッファから作成されたNSDataオブジェクトと比較します。両方の新しいNSDataオブジェクトが作成され、正しい内容を持っています。 isEqualtoDataが呼び出されたときしかし、私はエラーを取得する:

[NSConcreteData isEqualtoData:]: unrecognized selector sent to instance (instance refers to tmp2)

私も、これはドキュメント内の有効な方法であることは明らかだと私は理解していない警告

Instance method '-isEqualtoData:' not found (return type defaults to 'id')

を取得します。 NSData.hをどこかで宣言する必要はありますか?

-(BOOL)checkHeader{ 
    char tmp[3]; 
    [receivedStream getBytes:&tmp length:3]; 
    NSData *temp = [NSData dataWithBytes:tmp length:3]; 
    NSData *tmp2 = [NSData dataWithBytes:header length:3]; 
    BOOL test = [tmp2 isEqualtoData:temp]; 
    return test; 
} 
+0

投稿を編集するだけです。私はあなたのコードのコピー&ペーストを行い、何が間違っていたのかを理解するのに10分かかりました。xD – falkon21

答えて

29

isEqualToData:と呼ばれます。ほとんどのプログラミング言語のように、大文字のT-Objective-Cは大​​文字と小文字を区別します。

+0

私はそれがそんなに馬鹿だと分かっていました。ありがとう。それは私がドキュメントから直接メソッドをコピーするように教えてくれるでしょう。 –

+8

または自動補完を使用してください。 :) – Ciryon