Как проверить, если NSString = конкретное значение строки? - PullRequest
67 голосов
/ 01 сентября 2011

Привет, я удивляюсь, если вы можете проверить, равно ли NSString определенному значению, скажем, например, имя человека?

Я думаю в духе

if (mystring == @"Johns"){
    //do some stuff in here
}

Ответы [ 2 ]

141 голосов
/ 01 сентября 2011
if ([mystring isEqualToString:@"Johns"]){
    //do some stuff in here
}
3 голосов
/ 20 января 2014

Вот еще один метод, который вы можете использовать при некоторых обстоятельствах:

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 экземпляров.

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