2011-01-09 87 views
2

我有一個問題得到我的條件語句之一,以正確顯示數據。這裏是我正在使用的代碼:爲什麼這個條件語句不適用於NSUserDefault?

NSUserDefaults *pickerDefaults = [NSUserDefaults standardUserDefaults]; 
NSString *myString = [pickerDefaults stringForKey:@"userpicker"]; 
NSString *string = @"Name1"; 

NSLog(@"%@",myString); //This prints out Name1 
NSLog(@"%@",string); //This also prints out Name1 

if (myString == string) { 

    [pickerArray addObject:@"Name Other"]; 

} 

else { 
return; 
} 

我不能讓這個if語句給對象添加到UIPicker eventhough兩個字符串彼此相等。但是,如果我將其更改爲不等於!=,則它將顯示UIPickerView中的對象。我不明白我做錯了什麼。任何幫助都會很棒。謝謝。

回答

4

比較字符串對象,不使用他們的指針值,但使用

[string isEqualToString:myString] 
+0

可以完美運行現在比較,謝謝。由於是第一個用正確答案回答問題的人,你會得到答案。 – 0SX 2011-01-09 04:20:30

+0

@OSX讓我在幾秒鐘內打敗了我。那是怎麼工作:) – Mahesh 2011-01-09 04:24:44

4
if (myString == string) // Wrong : It compares address of two NSStrings 

if ([myString isEqualToString:string]) // This compares values of NSStrings 
{ 
}