我目前有一个网络服务器设置,我通过SOAP与我的iPhone应用程序进行通信。我正在返回一个包含GUID的字符串,当我尝试将其与另一个字符串进行比较时,我得到了一些奇怪的结果。
为什么这不会开火?当然这两个字符串是匹配的吗?
NSString *myString = @"hello world";
if(myString == @"hello world")
return;
答案 0 :(得分:181)
使用-isEqualToString:
方法比较两个字符串的值。使用C ==
运算符只会比较对象的地址。
if ([category isEqualToString:@"Some String"])
{
// Do stuff...
}
答案 1 :(得分:45)
您可以根据需要使用区分大小写或不区分大小写的比较。 区分大小写是这样的:
if ([category isEqualToString:@"Some String"])
{
// Both strings are equal without respect to their case.
}
不区分大小写是这样的:
if ([category compare:@"Some String" options:NSCaseInsensitiveSearch] == NSOrderedSame)
{
// Both strings are equal with respect to their case.
}
答案 2 :(得分:3)
您可以将字符串与以下函数进行比较。
NSString *first = @"abc";
NSString *second = @"abc";
NSString *third = [[NSString alloc] initWithString:@"abc"];
NSLog(@"%d", (second == third))
NSLog(@"%d", (first == second));
NSLog(@"%d", [first isEqualToString:second]);
NSLog(@"%d", [first isEqualToString:third]);
Output will be :-
0
1
1
1