在我的应用程序的逻辑过程中,我需要经常访问用户首选项,并且需要 10 到 15 次才能确定需要处理什么以及如何处理。可能这个问题不是关于性能,而是关于正确地做。
目前,每次我需要请求一个值时,我都在执行 [[NSUserDefaults standardUserDefaults] valueForKey:...]
。这样对吗?我认为将用户默认值“保存”为 ivar 可以减少额外的工作,但我想知道这是否不会有同步问题,比如如果用户更改首选项并且只有在应用程序重新启动时它们才会更新(所以重新创建用户默认对象)。
有没有更好的办法?
最佳答案
别担心,它非常快,我认为没有更好的方法,这就是类的使用方式。
NSUserDefaults 类在内部缓存值,因此查找非常快。 [NSUserDefaults standardUserDefaults] 与 instance variable 的开销非常小,如果你在代码中执行了 500 万次,你甚至不会注意到它。
优化它的唯一正确方法是改进你的逻辑,用指针缓存你自己使用的值,而不是 NSUserDefaults 基本上是字典等等。
关于objective-c - 经常访问 NSUserDefaults,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6114641/