проверка, не содержит ли массив определенный объект - PullRequest
33 голосов
/ 21 августа 2010

есть ли класс, чтобы проверить, не содержит ли массив объект?Я хочу сделать что-то вроде

if [(myarray doesntContain @"object")]

это возможно

Ответы [ 3 ]

99 голосов
/ 21 августа 2010

Для NSArray используйте -containsObject::

if (![myarray containsObject:someObject]) {
    // ...
}
1 голос
/ 27 апреля 2012

Я написал категорию 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;
}
0 голосов
/ 21 августа 2010

Если вы имеете дело с NSArray, вашим первым портом вызова, вероятно, должна быть документация Apple для NSArray , и, вероятно, метод содержитObject , пример в этот вопрос .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...