web-dev-qa-db-ja.com

配列に特定のオブジェクトが含まれていないかどうかを確認する

配列にオブジェクトが含まれていないかどうかを確認できるクラスはありますか?私は次のようなことをしたい

if [(myarray doesntContain @"object")]

これは可能ですか

33
Alex Stelea

NSArrayには -containsObject:

if (![myarray containsObject:someObject]) {
    // ...
}
99
Georg Fritzsche

最初にリクエストしたように、インスタンスメソッドを介してこれらの否定されたチェックを実現するために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;
}
1
Alex Gray

NSArrayを扱っている場合、最初の呼び出しポートはおそらく NSArrayのAppleドキュメント であり、おそらくメソッド containsObjectこの質問 の例があります。

0
Rob