【问题标题】:strange issue with NSUserDefaultsNSUserDefaults 的奇怪问题
【发布时间】:2011-03-25 06:06:00
【问题描述】:

我的应用委托中有一个数组。在其他一些类中,我在这个应用委托数组中添加了一些字典。

只有我在 NSUserDefaults 中为一个键设置了这个 appdelegate 数组。稍后当我检查我保存 appdelegate 数组的键的 NSUserDefaults 值时,总是显示 zero 对象。

我正在使用

[[NSUserDefaults standardUserDefaults] setObject:app.testArray forKey:@"theKey"];

【问题讨论】:

  • 您是否同步了用户默认设置?
  • 请在投反对票之前添加评论,以便我们更正自己
  • @Swastik :如果您不想接受,请不要接受。由你决定。它是为你好,不是我的。如果您的答案都没有帮助您,那么您可以设置赏金来获得答案。它只是一个建议。我不会对你强加任何东西。

标签: iphone cocoa-touch nsarray nsuserdefaults


【解决方案1】:

你可以试试这个代码。我很确定它对你有用。

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

[defaults setObject:yourArray forKey:@"init_val"]; 

[defaults synchronize];

要检索数据,您应该使用以下代码:

NSMutableArray *newArray=[[[NSUserDefaults alloc] objectForKey:@"init_val"] mutableCopy]; 

希望对你有所帮助。

【讨论】:

  • 另外你能发布更多你的代码吗?这样我们就可以找出问题的确切位置。
  • NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [默认 setObject:appDelegate.arr forKey:@"init_val"]; [默认同步]; NSMutableArray *newArray=[[[NSUserDefaults alloc] objectForKey:@"init_val"] mutableCopy];
  • 我的 newArray 显示零个对象,而我的 appDelegate.arr 有更多对象
  • 还有哪里?在应用程序委托上,您是否提供此 UserDefaults?或在其他一些观点?如果您在其他视图中赋予其值,您是否正确分配了 appdelegate 对象?
  • 您可以提供一些随机值并检查 nsuserdefaults。我怀疑您正在尝试保存空值,即两个数组都不同。
【解决方案2】:

试试这个来检索数据

NSMutableArray *newArray=[[NSUserDefaults standardUserDefaults] objectForKey:@"init_val"]; 

【讨论】:

    【解决方案3】:

    使用对象作为 key 而不是 valueforkey 例如:[userdefaults objectForKey:@"init_val"];

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-09
      • 1970-01-01
      • 2015-02-27
      • 2018-06-26
      • 2011-08-13
      • 2011-08-17
      • 2011-02-02
      • 2021-10-10
      相关资源
      最近更新 更多