2

iPhone SDK - 使用 performSelectorInBackground 泄漏内存

似乎建议您实际上可以在后台线程中 pushViewController。

但是我从 stackoverflow 的人那里得到一个警告,我不应该这样做。
例如。(iphone) 从后台线程启动计时器?

pushViewController 是否被视为“UI 更新”?
(因为我知道 UI 更新应该只在主线程中完成)

如果是这样,
当一个 viewController 需要一段时间来加载,并且想要在加载时显示一个指示器。
我的选择是什么?

4

1 回答 1

3

这里有几个策略。

1)在你做推送之前,但在你知道你会做的时候,在当前视图上调出一个合适的活动视图。我在某些应用程序中执行此操作,您单击表格中的一行,但推送视图必须执行一些需要时间的网络通信,因此我将表格单元格以蓝色突出显示,并在披露指示器左侧添加一个白色微调器. 效果很好。

2) 使用延迟加载将新的视图控制器快速显示在屏幕上,但将繁重的代码推迟到加载后,以便新控制器可以照顾自己的活动视图。通过延迟加载,我的意思是您应该尽可能少地在 init 方法中执行操作,并小心使用 viewdidload / viewwillappear / viewdidappear 等来分散工作并尽快在屏幕上获得活动视图。

于 2011-03-30T10:14:24.643 回答