为什么这个条件语句不适用于NSUserDefault?

时间:2011-01-09 03:57:29

标签: iphone objective-c uikit nsstring if-statement

我在使用其中一个条件语句正确显示数据时遇到问题。这是我正在使用的代码:

    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,尽管两个字符串彼此相等。但是,如果我将其更改为不等于!=那么它将显示UIPickerView中的对象。我不明白我做错了什么。任何帮助都会很棒。感谢。

2 个答案:

答案 0 :(得分:4)

要比较字符串对象,请不要使用它们的指针值,而是使用

进行比较
[string isEqualToString:myString]

答案 1 :(得分:4)

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

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