配列にオブジェクトが含まれていないかどうかを確認できるクラスはありますか?私は次のようなことをしたい
if [(myarray doesntContain @"object")]
これは可能ですか
NSArray
には -containsObject:
:
if (![myarray containsObject:someObject]) {
// ...
}
最初にリクエストしたように、インスタンスメソッドを介してこれらの否定されたチェックを実現するためにNSArrayカテゴリを作成しました。配列インスタンスに渡されたオブジェクトが含まれていない場合、これらはYESを返します。どうして?感嘆符は私を混乱させます。
NSArray + Additions.h
-(BOOL)doesNotContainObjects:(id<NSFastEnumeration>)enumerable;
-(BOOL)doesNotContainObject:(id)object;
NSArray + Additions.m
-(BOOL)doesNotContainObjects:(id<NSFastEnumeration>)enumerable {
for (id x in enumerable) {
if ([self containsObject:x]) return NO; // exists, abort!
}
return YES; // it ain't in there, return TRUE;
}
- (BOOL)doesNotContainObject:(id)object {
if ([self containsObject:object]) return NO; return YES;
}
NSArrayを扱っている場合、最初の呼び出しポートはおそらく NSArrayのAppleドキュメント であり、おそらくメソッド containsObject 、 この質問 の例があります。