慢UIViewController加载时间(慢ClientState警告)

DBD*_*DBD 7 uiviewcontroller ios autolayout

自从我将旧应用程序转换为iOS 6后,我开始在控制台中收到以下消息.

WARNING: Slow defaults access for key ClientState took 0.023656 seconds, tolerance is 0.020000

除了将我的代码从iOS 5更新到iOS 6之外,我还切换到了自动布局.我运行了仪器/时间分析器,而rootViewController我的appDelegate就是问题所在.每当我切换视图控制器时,它就会吸引大部分时间(无论我是否必须实例化视图控制器或重新使用已存在的视图控制器).

window.rootViewController = myViewController;
Run Code Online (Sandbox Code Playgroud)

我知道这个方法表面上做了什么,但我不确定幕后会发生什么...现在会导致它变慢的原因以及我该怎样做才能加快速度呢?

编辑:我已经尝试将我的故事板关闭自动布局,问题消失了(当然我的UI布局是乱七八糟的).所以明显的结论是,它是关于自动布局的.我可能只有不到70个视图,所有组合在屏幕上以及布局它们所需的各种约束.我很难相信自动布局要慢得多(从关闭自动布局的约80ms到打开自动布局的~1370ms).

B. *_*son 0

考虑创建一个带有 2 个视图控制器的新项目并测试切换速度。每个 iOS 应用程序都有一个窗口、一个根视图控制器和一个视图控制器。这个问题不太可能像您希望的那样狭窄和明确。每个视图控制器加载什么?你检查过底层代码吗?应用程序委托是否对根视图控制器的初始化或更改执行任何操作?