2013-02-20 45 views
-4

我有一些非常令人沮喪的麻煩,我肯定是一個非常簡單的問題,但我似乎無法修復它。我有一個叫做final的NSArray,輸出如下:比較NSStrings似乎不工作

final = (
".DS_Store", 
"hey.txt" 
) 

我想要下面的循環爲第一次傳遞返回false,第二次返回true。據我所知,我已經正確地做出了輸出,但兩次輸出都是正確的。

for (int i = 0; i < [final count]; i++) { 
    if (final[i] != @".DS_Store") { 
    NSLog(@"true"); 
    } 
    else { 
    NSLog(@"false"); 
    } 

輸出:

2013-02-20 17:20:39.042 myAppName [40636:403] true 
2013-02-20 17:20:39.042 myAppName [40636:403] true 

我想不通,爲什麼第一個不返回false。有任何想法嗎?

+0

http://stackoverflow.com/questions/6936129/xcode-ios-compare-strings – trojanfoe 2013-02-20 22:28:27

回答

2

您正在比較指針。使用[final[i] isEqualToString:@".DS_Store"]來比較字符串。

+0

是的!我知道這是一個簡單的答案。有不平等的嗎?像isNotEqualtoString? – 2013-02-20 22:30:06

+0

不,沒有。但這只是基本的C/Objective-C。其實這是用任何語言編寫的基本程序,所以我會讓你爲你自己找出一個。 – Sebastian 2013-02-20 22:32:13

+0

謝謝你的工作! – 2013-02-20 22:38:18