【问题标题】:Use NSUserDefaults to access a stored object使用 NSUserDefaults 访问存储的对象
【发布时间】:2011-08-02 00:13:27
【问题描述】:

我想访问通过 NSUserDefaults 保存的文本并将其显示在一个已经定义为“名称”的标签中。我的代码在下面,但它不起作用。我该怎么办?感谢您的帮助!

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

【问题讨论】:

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

标签: iphone ios ipad text nsuserdefaults


【解决方案1】:

应该是:

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"]];
    

    【讨论】:

    • 第一部分其实是没有必要的,这只是一次添加多个默认值的方法。如果只设置一个值,存储方法 [[NSUserDefaults standardUserDefaults] setObject: forKey:] 会更快。
    • 是的,我添加了我的意图,因为最常见的情况是您希望将多个值设置为默认值,而我不确定他是否正确设置了默认值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-30
    • 1970-01-01
    • 2016-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多