2011-11-06 227 views
-1

我有一個名稱數組,但似乎無法進行比較工作。我在這裏使用不當的語言嗎?Objective-C字符串比較

NSLog(@"%@",[arrayOfNames objectAtIndex:0]); 

if ([arrayOfNames objectAtIndex:0] == "Blue"){ 
    NSLog(@"it's Blue"); 
} 
else { 
    NSLog(@"it's not Blue"); 
} 

輸出爲以下之一:

它不是藍

回答

7

使用以下命令:

if ([[arrayOfNames objectAtIndex:0] isEqualToString:@"Blue"]) 

你比較兩個對象(id類型之一,另一個是C字符串)與==運算符。比較將失敗,因爲它們是2個不同的對象。使用isEqualToString,您將對象的值與字符串@"Blue"進行比較。

+0

謝謝,xCoder,爲那個世界紀錄響應。不到一分鐘。我感謝您的幫助。 (我正在編輯我的問題,發現你已經回答了,再次感謝 –

+1

爲了擴大答案,你用==比較兩個對象,然後用isEqualToString發送一條消息來比較這兩個對象+1 –

+2

甚至沒有兩個對象;''藍色''是一個C字符串,而不是一個Objective-C對象 –