我有一個字符串數組。該數組是通過將逗號分隔的長字符串解析爲多個組件字符串而創建的。我可以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