我使用NSUserDefaults错了吗?

时间:2009-03-19 09:45:06

标签: objective-c iphone

我为我的iPhone应用程序创建了“设置”模型。它只包含两个属性和一个用于加载的类方法和一个用于保存的实例方法。

我按如下方式加载

+ (UserSettings *)getCurrent {
    NSUserDefaults *userPrefs = [NSUserDefaults standardUserDefaults];
    UserSettings *settings = [UserSettings new];
    settings.username = [userPrefs stringForKey:kUserNameKey];
    settings.password = [userPrefs stringForKey:kPasswordKey];
    [userPrefs release];
    return settings;
}

使用NSUserDefault进行处理会导致异常的问题;

  

- [NSCFArray objectForKey:]:发送到实例的无法识别的选择器   0x50b220

我已经使用常量导入了我的标题,其定义如下;

#define kUserNameKey    @"Username"
#define kPasswordKey    @"Password"

(我知道钥匙串,并计划稍后更改,但想要解决用户默认值)

2 个答案:

答案 0 :(得分:7)

尝试删除[userPrefs release],因为您从未保留或分配

答案 1 :(得分:0)

如何为用户名/密码定义UserSettings属性?它们应设置为“复制”字符串。