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