我怎样才能将NSString与其他两个NSStrings进行比较

时间:2012-12-16 13:44:44

标签: objective-c nsstring

我的问题是我有一个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 *,这是不必要的,是吗?

3 个答案:

答案 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])

希望有所帮助。