0
 1.  [[NSUserDefaults standardUserDefaults] setInteger:VIPassetCount forKey:@"VIPcount"];
      [[NSUserDefaults standardUserDefaults]synchronize];

 2.   `[[NSUserDefaults standardUserDefaults] setInteger:VIPassetCount forKey:@"VIPcount"];`

我很困惑,在处理 NSUserDefault 时我是否需要使用“同步”。因为我没有发现使用或不使用它(“同步”)之间的任何区别。请用上面给出的两个代码进行解释。

4

3 回答 3

2

只需阅读 文档

NSUserDefaults 缓存信息以避免每次需要默认值时都必须打开用户的默认数据库。

同步方法会定期自动调用,它使内存中的缓存与用户的默认数据库保持同步。

因此,除非您在特殊情况下需要将值实际写入磁盘,否则您不需要使用synchronize,因为系统会在需要时为您完成。

于 2013-06-13T11:20:13.870 回答
0

当您要更新 NSUserDefaults 的值时,您需要使用:

[[NSUserDefaults standardUserDefaults]synchronize];
于 2013-06-13T11:20:12.780 回答
0

尝试这个,

保存数据

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"xxxxxxxx" forKey:@"name"];
[defaults synchronize];

[默认同步]的目的;是使用户默认值立即写入磁盘。你不需要显式调用它,iOS 已经在适当的时候调用它(比如进入后台时)。所以你可以删除那条线。实际上,如果每次设置默认值时都调用 synchronize 是性能问题。

于 2013-06-13T12:18:33.243 回答