如何检查NSString =一个特定的字符串值?

时间:2011-09-01 04:46:34

标签: iphone ios nsstring

您好我想知道您是否可以查看NSString是否等于特定值,例如某个人的名字?

我正在思考

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

2 个答案:

答案 0 :(得分:141)

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

答案 1 :(得分:3)

以下是您可能希望在某些情况下使用的另一种方法:

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
}

这些方法有效,因为NSSetNSArray使用isEqual:会为NSString个实例调用isEqualToString:

相关问题