2011-01-09 53 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 
{ 
} 
相关问题