我的问题是我有一个NSString,我必须将它与其他两个NSStrings进行比较。
我如何比较NSStrings,如:
if(a == (b || c))
我对此的解决方案还不错(但有效):
NSString *a = @"myfirststring";
NSString *b = @"mysecondstring";
if([[NSString stringWithFormat:@"%s", MethodThatReturnsChar*] isEqual:a] || [[NSString stringWithFormat:@"%s",MethodThatReturnsChar*] isEqual:b])
{
}
问题是我必须两次调用MethodThatReturnsChar *,这是不必要的,是吗?
答案 0 :(得分:4)
这不是必要的,是吗?
确切地说,这完全是多余的。这就是C语言有变量的原因......另外,不要滥用- [NSString stringWithFormat:]
。此外,使用isEqualToString:
进行比较:
NSString *a = [NSString stringWithUTF8String:someCharPtr];
if ([a isEqualToString:b] || [a isEqualToString:c]) {
DoStuff();
}
答案 1 :(得分:0)
将该字符串分配给变量,然后将其与其他字符串进行比较
NSString *a = @"myfirststring";
NSString *b = @"mysecondstring";
NSString *stringIAmComparing = [NSString stringWithFormat:@"%s", MethodThatReturnsChar*];
if([stringIAmComparing isEqualToString:a] || [stringIAmComparing isEqualToString:b])
{
}
答案 2 :(得分:0)
您可以使用
将“MethodThatReturnsChar *”包装到另一个NSString中NSString* stringToCompare = [NSString stringWithCString:yourCString encoding:NSUTF8StringEncoding];
然后比较:
if([stringToCompare isEqualToString:a] || [stringToCompare isEqualToString:b])
希望有所帮助。