2012-12-16 76 views
1

我的問題是我有一個NSString,我必須將它與另外兩個NSStrings進行比較。我如何比較NSString與另外兩個NSStrings

我怎麼能比較NSString的一樣:

if(a == (b || c)) 

我對這項決議不精,但(但工作):

NSString *a = @"myfirststring"; 
NSString *b = @"mysecondstring"; 
if([[NSString stringWithFormat:@"%s", MethodThatReturnsChar*] isEqual:a] || [[NSString stringWithFormat:@"%s",MethodThatReturnsChar*] isEqual:b]) 
{ 
} 

的問題是,我要打電話MethodThatReturnsChar *兩次,那不是必要的,是嗎?

回答

4

那沒有必要,是嗎?

確切地說,這是完全多餘的。這就是爲什麼C語言有變量...另外,不要濫用- [NSString stringWithFormat:]。此外,使用isEqualToString:比較:

NSString *a = [NSString stringWithUTF8String:someCharPtr]; 
if ([a isEqualToString:b] || [a isEqualToString:c]) { 
    DoStuff(); 
} 
0

指定該字符串變量,然後將其與其他字符串比較

NSString *a = @"myfirststring"; 
    NSString *b = @"mysecondstring"; 
    NSString *stringIAmComparing = [NSString stringWithFormat:@"%s", MethodThatReturnsChar*]; 
    if([stringIAmComparing isEqualToString:a] || [stringIAmComparing isEqualToString:b]) 
    { 
    } 
0

可以使用

包住「MethodThatReturnsChar *」到另一個的NSString
NSString* stringToCompare = [NSString stringWithCString:yourCString encoding:NSUTF8StringEncoding]; 

,然後比較:

if([stringToCompare isEqualToString:a] || [stringToCompare isEqualToString:b]) 

希望有所幫助。