配列に対して呼び出されるメソッドを呼び出して配列の長さを取得しようとしているように見えますが、配列の長さを取得するには、たとえば次のようなメソッドlength
を使用します。count
NSInteger numberOfElements = [someArray count];
お役に立てれば!
PSlength
メソッドは存在しますが、文字列内の文字数を取得するために NSString オブジェクトで使用されます。
- - アップデート - - -
Ray Wenderlich の「My App Crashed, Now What?」チュートリアルから:
エラー メッセージ「認識できないセレクターがインスタンス XXX に送信されました」は、アプリが存在しないメソッドを呼び出そうとしていることを意味します。
したがって、コードのどこかで、length
NSArray 型のオブジェクトに対してメソッドを呼び出しています。
実際にはlength
NSMutableArray 型のオブジェクトでメソッドを呼び出しており__NSArrayM
、NSMutableArray オブジェクトを表しているため、エラーからそれがわかります。通常の NSArray オブジェクトは次のように表されます__NSArrayI
(接尾辞「M」は「可変」を表し、接尾辞「I」は「不変」を表します)。
私と非常によく似た答えを持つ非常によく似た質問さえ見つけました:
NSArrayM の長さ: 認識されないセレクターがインスタンスに送信されました
- へー、私は前にこれを持っていました。どこかでこれをやっています: [配列の長さ]; ただし、配列は「長さ」ではなく「カウント」を使用します。