自从我将旧应用程序转换为 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;
我知道该方法表面上做了什么,但我不确定幕后会发生什么……什么会导致它现在变慢,我该怎么做才能加快速度?
编辑:我试过把我的故事板从自动布局中去掉,问题就消失了(当然我的 UI 布局一团糟)。所以显而易见的结论是,它是关于自动布局的。我可能在屏幕上组合了不到 70 个视图,以及布置它们所需的各种约束。我很难相信自动布局会慢得多(从关闭自动布局的 ~80ms 到打开自动布局的 ~1370ms)。