CCArrayからNSNumberを削除したいと思います。 removeObject:
を使用して13以上のNSNumberを削除すると、何も削除されません。何が起きてる?私はNSMutableArrayを使用しようとしており、正常に動作します。 removeObjectAtIndex:
を使用するのは、配列が数値順でないためオプションではありません。CCArrayからオブジェクトを削除できない
CCArray *arr = [CCArray array];
for (NSInteger i = 0; i < 20; i++) {
[arr addObject:[NSNumber numberWithInt:i]];
}
// Outputs arr count 20
CCLOG(@"%@: arr count %i ", NSStringFromSelector(_cmd), [arr count]);
[arr removeObject:[NSNumber numberWithInt:13]];
// Still outputs arr count 20
CCLOG(@"%@: arr count %i ", NSStringFromSelector(_cmd), [arr count]);
[arr getIndexOfObject:[NSNumber numberWithInt:13]]は何を返しますか?有効なインデックス、またはNSNotFound?それはarrの各要素が正当性チェックと同様に何かを表示する価値があるかもしれません。なぜそれがそこにないのか分かりません... – JTeagle
CCLOG(@ "%i"、[arr indexOfObject:[NSNumber numberWithInt:13]]);上記のコードの最後には2147483647が返されます。 – dxb
NSNotFoundを推測しています。私はそれがオブジェクトの平等テストと関係していると思います。 NSNumber型の2つの別々の変数を作成し、両方とも13に設定し、一方をもう一方に対してテストします - それらを等しいと見なしますか? (申し訳ありませんが、私はココを知らない)。 – JTeagle