1

我的问题是我有一个 NSString,我必须将它与其他两个 NSString 进行比较。

我如何比较 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* 两次,这不是必需的,是吗?

4

3 回答 3

4

这没有必要,是吗?

确切地说,这完全是多余的。这就是 C 语言有变量的原因......另外,不要滥用- [NSString stringWithFormat:]. 此外,isEqualToString:用于比较:

NSString *a = [NSString stringWithUTF8String:someCharPtr];
if ([a isEqualToString:b] || [a isEqualToString:c]) {
    DoStuff();
}
于 2012-12-16T13:48:05.083 回答
0

将该字符串分配给一个变量,然后将其与其他字符串进行比较

    NSString *a = @"myfirststring";
    NSString *b = @"mysecondstring";
    NSString *stringIAmComparing = [NSString stringWithFormat:@"%s", MethodThatReturnsChar*];
    if([stringIAmComparing isEqualToString:a] || [stringIAmComparing isEqualToString:b])
    {
    }
于 2012-12-16T13:48:11.873 回答
0

您可以使用将“MethodThatReturnsChar *”包装到另一个NSString中

NSString* stringToCompare = [NSString stringWithCString:yourCString encoding:NSUTF8StringEncoding];

然后比较:

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

希望有帮助。

于 2012-12-16T13:49:11.577 回答