我想知道访问NSUserDefaults
中存储的数据(字符串,bool)是否是一项昂贵的操作。这是否明显慢于访问它并将其存储在属性中,然后通过从属性获取它而不是再次从NSUserDefaults
获取它来使用它?或者差异是非常微不足道的?我知道文档状态NSUserDefaults
已缓存。
答案可能取决于您计划获取它的频率。我们假设它每分钟需要20次。我不会以编程方式更改它,只获取当前值。
我很好奇,因为总是获取它的一个好处是你可以保证这是当前值。如果你得到它并存储它,你需要监听NSUserDefaults
的更改,然后通过获取它来更新存储的值。
答案 0 :(得分:1)
在运行时,您使用NSUserDefaults对象来读取默认值 您的应用程序使用用户的默认数据库。 NSUserDefaults的 缓存信息以避免必须打开用户的默认值 数据库每次需要默认值时。同步方法, 它会定期自动调用,保持 内存缓存与用户的默认数据库同步。
在documentation之后,当您不使用synchronize
方法时,从NSUserDefault
获取值不应该是一项昂贵的操作。因此,虽然您只是获取值而不是设置它,但您的操作不会比从属性直接访问更昂贵。