自从我将旧应用程序转换为 iOS 6 以来,我开始在控制台中收到以下消息。
WARNING: Slow defaults access for key ClientState took 0.023656 seconds, tolerance is 0.020000
除了将代码从 iOS 5 更新到 iOS 6 之外,我还切换到了自动布局。我已经运行了 Instruments/Time Profiler 和rootViewController
在我的 appDelegate 中是问题所在。每次我切换视图控制器时,它都会占用大部分时间(无论我是否必须实例化视图控制器或重新使用已经存在的视图控制器)。
window.rootViewController = myViewController;
我知道该方法表面上的作用,但我不确定在幕后发生了什么......什么会导致它现在变慢,我能做些什么来加快它的速度?
EDIT:我尝试将故事板从自动布局中取消,问题就消失了(当然我的 UI 布局一团糟)。所以显而易见的结论是,这与自动布局有关。我可能在屏幕上组合了不到 70 个视图,并且需要对它们进行布局的各种限制。我很难相信自动布局会慢得多(从自动布局关闭时的约 80 毫秒到自动布局打开时的约 1370 毫秒)。
屏幕上有 70 次观看次数听起来很多!我的建议是让它变得更简单某种程度上来说:
您真的需要同时观看所有 70 次观看吗?
检查所有视图是否需要自动布局,尽可能将其删除
- 某些视图可以用图形代替吗?我使用过视图,例如对于阴影,可能是图像
您可以将故事板分成几个较小的例如一个用于登录、详细信息、编辑模式等。缓慢的部分原因可能是系统必须处理(太大)大的故事板。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)