2011-08-02 98 views
1

我想访问通过NSUserDefaults保存的文本,并将其显示在名为“name”的标签中。我的代码在下面,但它不起作用。我该怎么办?谢谢你的帮助!使用NSUserDefaults访问存储的对象

name = [[NSUserDefaults standardUserDefaults] objectForKey:@"Name"]; 
+0

在某些情况下,当设置对象时,需要调用'-synchronize'来确保值被存储,通常如果在应用程序退出之前设置该值或类似的值,@diwup也是正确的,你当前的方法将会默默地失败。 –

回答

3

应该是:

name.text = [[NSUserDefaults standardUserDefaults] objectForKey:@"Name"]; 
2

首先,你应该好歹注册您的默认值是这样的:(!这仅仅是必要的,如果你想添加多个项目)

NSDictionary *defaultsDict = 
[NSDictionary dictionaryWithObjectsAndKeys:@"MyName", @"defaultName", @"MyAge", @"defaultAge", nil];` 
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsDict]; 

现在使用这个假设你有一个标签指针:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
[label setText:[defaults stringForKey:@"defaultName"]]; 
+0

第一部分实际上不是必需的,这只是一次添加多个默认值的方法。如果您只有一个值需要设置,存储方法[[NSUserDefaults standardUserDefaults] setObject:forKey:]会更快。 –

+0

是的,我添加了我的意图,因为最常见的情况是你想要将多个值设置为默认值,我不确定他是否正确设置了默认值。 – MJB

相关问题