Как проверить, является ли NSString = конкретное значение строки?
Привет, я удивляюсь, если вы можете проверить, соответствует ли NSString конкретному значению, например, имя человека?
Я думаю по линиям
if (mystring == @"Johns"){
//do some stuff in here
}
Ответ 1
if ([mystring isEqualToString:@"Johns"]){
//do some stuff in here
}
Ответ 2
Вот еще один способ, который вы можете использовать в некоторых случаях:
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) vs O(N))
NSSet * validNamesSet = [NSSet setWithArray:validNames];
if ([validNamesSet containsObject:myString])
{
// This is faster than indexOfObject for large sets
}
Эти методы работают, потому что NSSet и NSArray используют isEqual:, которые вызывают isEqualToString: для NSString экземпляров.