65
嗨,我很w if,如果你能检查一下NSString是否等于一个特定的值,比如说一个人的名字?如何检查NSString =特定的字符串值?
我沿着
if (mystring == @"Johns"){
//do some stuff in here
}
嗨,我很w if,如果你能检查一下NSString是否等于一个特定的值,比如说一个人的名字?如何检查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)
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
实例。
你想使用'location'方法而不是''isEqualToString'方法的for循环吗? – Pavan
@Pavan比for循环更容易使用'indexOfObject'(更少的代码行)。除此之外,没有什么区别。 NSSet方法可以比通过大型数组循环更快,但在大多数情况下,它不会很重要。 – Robert