访问存储在NSUserDefaults中的数据是一项昂贵的操作吗?

时间:2014-11-01 21:54:39

标签: ios cocoa-touch nsuserdefaults

我想知道访问NSUserDefaults中存储的数据(字符串,bool)是否是一项昂贵的操作。这是否明显慢于访问它并将其存储在属性中,然后通过从属性获取它而不是再次从NSUserDefaults获取它来使用它?或者差异是非常微不足道的?我知道文档状态NSUserDefaults已缓存。

答案可能取决于您计划获取它的频率。我们假设它每分钟需要20次。我不会以编程方式更改它,只获取当前值。

我很好奇,因为总是获取它的一个好处是你可以保证这是当前值。如果你得到它并存储它,你需要监听NSUserDefaults的更改,然后通过获取它来更新存储的值。

1 个答案:

答案 0 :(得分:1)

  

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

documentation之后,当您不使用synchronize方法时,从NSUserDefault获取值不应该是一项昂贵的操作。因此,虽然您只是获取值而不是设置它,但您的操作不会比从属性直接访问更昂贵。