NSArrayからオブジェクトのインデックスを取得しますか?質問する

NSArrayからオブジェクトのインデックスを取得しますか?質問する

配列のインデックスを取得しようとしていますオブジェクトのインデックス{57,56,58..}メソッドは次のようになりますが、インデックスをテストするために値を記録しようとすると、ガベージ値が取得されます。テスト目的で、インデックスを取得するための値を含む配列を用意しています56

NSNumber *num = [NSNumber numberWithInteger:56];
NSInteger Aindex = [myArray indexOfObject:num];
NSLog(@" %d",Aindex);

取得した値は次のようになります2323421。何が間違っているのでしょうか?

ベストアンサー1

によって返されるインデックスは、indexOfObjectオブジェクトの発生の最初のインデックスになります。等価性は、isEqualメソッドを使用してテストされます。
取得するガベージ値は、おそらく に等しいでしょうNSNotFound。これに対して
テストしてみてくださいanIndex。探している数字は、配列 にはない可能性があります。

NSNumber *num=[NSNumber numberWithInteger:56];
NSInteger anIndex=[myArray indexOfObject:num];
if(NSNotFound == anIndex) {
    NSLog(@"not found");
}

または、配列の内容をログに記録して確認します。

NSLog(@"%@", myArray);

おすすめ記事