我遇到NSUserDefaults问题。我正在保存一个名称,然后尝试在其他视图控制器的代码中访问它,但似乎我的键是空的或者没有保存,因为当我从键中显示字符串时我的标签是空白的。
-(void) saveName {
NSString *name = nameField.text;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:name forKey:@"playersName"];
[defaults synchronize];
}
-(void) viewDidLoad // method called later on in code from different viewcontroller
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *name = [defaults objectForKey:@"playersName"];
playerName.text = name; // player name == myLabel
if ([[NSUsersDefaults standardUserDefaults] objectForKey:@"playersName"] == nil) {
playerName.text =@" blank";
}
}
我的字符串似乎没有保存到userdefaults,因为@“blank”字符串一直显示我的标签。我对NSUserDefaults不太熟悉,所以非常感谢任何帮助。
答案 0 :(得分:0)
使用NSUserDefaults
时需要注意的一些事项:
stringForKey:
或boolForKey:
代替objectForKey:
我在NSUserDefaults上遇到过几次麻烦,但最后通常我的代码存在问题。
答案 1 :(得分:0)
我建议你检查你的'(void)saveName'方法是否被调用...放一些断点并查看结果