objective-c - 经常访问 NSUserDefaults

标签 objective-c cocoa performance nsuserdefaults

在我的应用程序的逻辑过程中,我需要经常访问用户首选项,并且需要 10 到 15 次才能确定需要处理什么以及如何处理。可能这个问题不是关于性能,而是关于正确地做。

目前,每次我需要请求一个值时,我都在执行 [[NSUserDefaults standardUserDefaults] valueForKey:...]。这样对吗?我认为将用户默认值“保存”为 ivar 可以减少额外的工作,但我想知道这是否不会有同步问题,比如如果用户更改首选项并且只有在应用程序重新启动时它们才会更新(所以重新创建用户默认对象)。

有没有更好的办法?

最佳答案

别担心,它非常快,我认为没有更好的方法,这就是类的使用方式。

NSUserDefaults 类在内部缓存值,因此查找非常快。 [NSUserDefaults standardUserDefaults]instance variable 的开销非常小,如果你在代码中执行了 500 万次,你甚至不会注意到它。

优化它的唯一正确方法是改进你的逻辑,用指针缓存你自己使用的值,而不是 NSUserDefaults 基本上是字典等等。

关于objective-c - 经常访问 NSUserDefaults,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6114641/

相关文章:

objective-c - 设置应用程序首次运行时的默认位置

iphone - 为什么链接器提示缺少符号?

objective-c - 如何绑定(bind)到 NSString?

c - while(i--) 通过 gcc 和 clang 优化 : why don't they use sub/jnc?

performance - Delphi优化: constant loop

iphone - 如何检查它是从哪个 View Controller 导航的....在obj c中

iphone - AFHTTPRequestOperation 在待机模式后不起作用

ios - inout CGPoint * 作为参数意味着什么?

objective-c - 当 VPN 连接断开时收到通知

javascript - 用于收集浏览器端性能信息的 JS 库(如 YSlow 或 FireBug "Net"?)