嗨,我很伤心,如果您可以查看NSString是否等于特定值,例如说一个人的名字?
我在想
if (mystring == @"Johns"){
//do some stuff in here
}
Answers:
这是您在某些情况下可能要使用的另一种方法:
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
实例。
indexOfObject
比for循环(更少的代码行)更易于使用。除此之外,没有什么区别。NSSet方法比循环遍历大型集合的数组要快,但是在大多数情况下,它并不重要。
location
方法的for循环相比,您何时想使用该isEqualToString
方法?