我有一个字符串数组。该数组是通过将逗号分隔的长字符串解析为多个组件字符串而创建的。我可以NSLog这些组件,他们显示正确。然而,如果我测试这些部件中的一个为极对象的NSLog示出它作为含有,测试仍然失败:测试字符串的相等性不正确
NSArray*parseLine=[[NSArray alloc] initWithArray:[newline componentsSeparatedByString:@","]];
NSLog(@"*%@*"[parseLine objectAtIndex:1]);
输出:
*N/A*
所以很明显“N/A”是存在的,这三个字符完全相同。
然而,这未能通过测试:
if ([parseLine objectAtIndex:1][email protected]"N/A") //never passes
也试过这样:
if ((NSString*)[parseLine objectAtIndex:1][email protected]"N/A")
为什么它不通过测试?
当你写一个字符串“富”它是在一定的内存地址存储在内存中。如果您在if语句中使用字符串文字if(something ==“foo”),您正在比较是否某物指向“foo”而不是某物的内容是否等于字符串“foo” – 2012-04-05 06:16:16