NSUserDefaults在执行时是否始终执行IO?

时间:2012-04-19 08:17:59

标签: nsuserdefaults

NSUserDefaults是执着吗?如果我们关闭申请,它仍然存在。所以这是IO。

这是否意味着我们每次都

– setObject:forKey:我们做IO?

每次我们执行时,iPhone都会读取和写入磁盘

[[NSUserDefaults standardUserDefaults] setObject:trimmedSearchLocation forKey:SEARCHNEAR];

或那种事

2 个答案:

答案 0 :(得分:3)

来自docs

  

在运行时,您使用NSUserDefaults对象从用户的默认数据库中读取应用程序使用的默认值。 NSUserDefaults缓存信息以避免每次需要默认值时都必须打开用户的默认数据库。 synchronize方法会定期自动调用,使内存缓存与用户的默认数据库保持同步。

所以只有synchronize调用你的磁盘上才有IO!

答案 1 :(得分:1)

系统会定期同步设置。您很少需要明确地同步它们。