iOS:读取NSUserDefaults与变量的速度

Tom*_*yer 5 variables performance nsuserdefaults ios

我有一个应用程序,它会调用变量.这些变量存储在NSUserDefaults.

我想知道在哪里NSUserDefaults存储?如果我NSUserDefaults直接打电话而不是使用变量.

哪个更快?变量或NSUserDefaults.因为使用变量存储NSUserDefaults将是使用更多内存的原因.

tro*_*foe 6

NSUserDefaults将其数据保留在磁盘上,因此在某些时候它必须从磁盘加载该数据才能将其存储在内存中.当你告诉它时,它需要将它写回磁盘synchronize.

一旦进入内存,它就会将它存储在类似字典的容器中(可能NSMutableDictionary).

与直接读取变量相比,从两个磁盘读取都非常昂贵,并且与读取变量相比,从字典读取是相当昂贵的.

长期阅读/编写变量的速度要快得多.

  • 我会将数据存储在变量(可能是单例类)中,并且具有从`NSUserDefaults`读取并写入`NSUserDefaults`的方法,但只在应用程序生命周期中发生某些事情时调用该读/写方法(即进入前台) /背景等) (2认同)