1
3
首先要做的是不要假定NIB加载是瓶颈,而没有直接的证据证明它是瓶颈。笔尖加载是高度优化和非常有效的。您的瓶颈更有可能是网络请求,而不是NIB。在你做任何事情之前,使用工具获取关于应用程序在哪里花费时间的具体数据。 假设是笔尖, Andiih answer 是最好的分析,但在我看来,你真的有一个设计问题。 听起来你需要把你的大笔尖分成小笔尖。 每个笔尖有一个视图是很常见的。例如,假设您有一个应用程序,它有一个带有五个选项卡的选项卡。然后每个选项卡都有一个表视图,可以打开一个详细视图。在正常设置中,您将有11个独立的笔尖。一个笔尖将定义选项卡,每个选项卡视图一个笔尖,然后每个细节视图一个笔尖。当应用程序启动时,只有标签条和第一个可见标签的笔尖会被加载,所以您只会加载11个笔尖中的两个。 要优化,首先要做的是将其分解为尽可能小的单个笔尖。一个笔尖只在需要时加载。您应该将功能放在整个NIB中,这样,如果不立即显示NIB的视图,就不会加载该NIB。 NIB只是轻量级的数据文件,所以不要害怕创建99%相同的NIB。例如,我经常对每个纵向和横向视图使用单独的视图。对于用户来说,它是一个视图,但我有三个独立的笔尖。我这样做的情况下,它很容易使用一个完全独立的视图,而不是旋转一个单一的复杂视图。每个笔尖在使用其方向时加载。如果方向不变,则不会加载。 如果您有一个复杂的接口,它会根据网络请求发生显著的变化,那么在运行时为每个变化单独设置NIB的速度将比将所有功能塞进一个NIB的速度更快。 |
2
1
我不知道这是否真的有效,但是您可以在每个控制器中的initwitcoder中放入日志语句,该控制器将作为每个子XIB负载调用。这可能会给你一些线索。 我想仪器不会给你任何有用的东西吗? |
Noah Harasz · 从内部可重用视图显示popover视图? 7 年前 |
Hinni · 尝试注册nib以从我的视图访问我的插座 7 年前 |
Diego · 如何在xib本地化之间切换 9 年前 |
user714223 · 在swift中动态加载类的实例 10 年前 |
DoPeT · 找不到@import文件nib.styl 10 年前 |
Kenny · NSToolBar上的复选框将不会更新? 10 年前 |
Katushai · 使用nib文件切换视图的速度非常慢 11 年前 |