Вот еще один метод, который вы можете использовать при некоторых обстоятельствах:
NSArray * validNames = @[ @"foo" , @"bar" , @"bob" ];
if ([validNames indexOfObject:myString].location != NSNotFound)
{
// The myString is one of the names in the valid names array
}
Или, если у вас есть большое количество имен в массиве, вы можете использовать NSSet
поскольку поиск объекта происходит быстрее, чем в массиве ((O(Log N)
против O(N)
)
NSSet * validNamesSet = [NSSet setWithArray:validNames];
if ([validNamesSet containsObject:myString])
{
// This is faster than indexOfObject for large sets
}
Эти методы работают, потому что NSSet
и NSArray
используют isEqual:
который будет вызывать isEqualToString:
для NSString
экземпляров.