【问题标题】:NSUserDefaults not saving in iOS 7NSUserDefaults 未保存在 iOS 7 中
【发布时间】:2013-10-09 13:34:19
【问题描述】:

NSUserDefaults 遇到了这个问题。它会保存默认值,直到我在后台杀死应用程序,然后当我返回时,所有默认值都消失了。每次在我的设备上构建新版本时,它们也会消失。但同样,只要我不在后台杀死它,它们就在应用程序中。它在 iOS 6 中运行良好。想法?

【问题讨论】:

  • 你在同步吗?从技术上讲,您不应该这样做,但值得一试。
  • 是的,我是。好奇怪。
  • 您是否在标题中定义了NSUserDefaults * defaults;?或使用[NSUserDefaults standardDefaults]
  • 我在使用 cocos2x (3.0) 时遇到了同样的问题。即使拨打synchronize 也不能解决问题。
  • 您是否找到无法保存在用户默认值中的原因

标签: iphone ios objective-c ipad ios7


【解决方案1】:

将您的值放入字符串(或根据您的要求的任何其他值)并将字符串保存在用户默认值中

NSUserDefaults *userdefault=[NSUserDefaults standardUserDefaults];        
NSString *str=[NSString stringWithFormat:@"%@",[dicUser objectForKey:@"device_token"]];
[userdefault setObject:str forKey:@"YOURKEY"];

【讨论】:

    【解决方案2】:

    因为你没有你的代码,所以我给出的例子在 iOS 7 上非常适合我,试一试。希望对你也有用。

    用于保存布尔值

    bool flag = YES;
    [[NSUserDefaults standardUserDefaults] setBool:flag forKey:@"flag"];
    

    用于检索布尔值

    bool flag = [[NSUserDefaults standardUserDefaults] boolForKey:@"flag"];
    

    【讨论】:

      【解决方案3】:

      确保在使用它之前,您已经声明了 userDefaults 之类的东西,如果您在 AppDelegate 文件中使用了它,那么这里是一个示例代码,我如何保存值,它工作正常,所以试试这个方式

      APP_DELEGATE.userDefaults = [NSUserDefaults standardUserDefaults];
      [APP_DELEGATE.userDefaults setObject:@"unChecked" forKey:@"CheckMark"];
      [APP_DELEGATE.userDefaults synchronize];
      

      APP_DELEGATE 在我的AppDelegate.h 文件中声明如下

      #define APP_DELEGATE ((AppDelegate*)[[UIApplication sharedApplication] delegate])
      

      希望对你有帮助!

      【讨论】:

      • NSUserDefaults 保存到应用委托的原因是什么?
      猜你喜欢
      • 1970-01-01
      • 2011-08-26
      • 1970-01-01
      • 1970-01-01
      • 2010-10-03
      • 2013-04-16
      • 1970-01-01
      • 1970-01-01
      • 2011-10-02
      相关资源
      最近更新 更多