可能是一个愚蠢的问题,但在我们的iOS应用程序中,我们存储了一个用于UI颜色首选项的整数。在自定义视图的drawRect中,我们当前正在获取该首选项值,并使用它为某些绘制的文本设置特定的UIColor。
我理解standardUserDefaults值是缓存的,但这是一种低效的处理方式吗?我们应该在自定义视图中添加本地ivar并在init上提取首选项值,然后在更改默认值时注册通知,那么值是否可以更新?
答案 0 :(得分:1)
如前所述:Accessing NSUserDefaults Often,除非您正在优化每秒调用百万次的内循环,否则您根本不需要担心这一点。
同样,问自己这样的问题可能是一个坏主意,这就是所谓的过早优化,我们都知道这是所有邪恶的根源。如果您想知道真正的答案,请将所有代码放在正确的上下文中(因此您基本上需要完成整个应用程序)并使用分析器。在大多数情况下,您会发现瓶颈是您不期望的。
答案 1 :(得分:0)
使用时间分析器查看绘图方法的时间。我怀疑从默认值中获取值是一个性能瓶颈,与您实际使用颜色本身的任何绘图相比。
不要让你的代码比没有充分理由的代码更复杂。