如何检查NSString =特定的string值?

嗨,我徘徊,如果你可以检查,看看NSString是否等于一个具体的价值,比如说一个人的名字?

我正在思考

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

以下是在某些情况下可能需要使用的另一种方法:

 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 } 

这些方法是可行的,因为NSSetNSArray使用isEqual:这将调用isEqualToString:用于NSString实例。