【发布时间】:2016-07-09 12:24:33
【问题描述】:
我有 2 个基本方法 - viewDidLoad 和 viewDidAppear。根据我的 App 理念,当视图控制器加载时,它会从基础中获取数据并开始使用一些谓词对其进行排序。获取过程很长,所以我将它分派到全局队列。当我的视图出现时,它显然没有从数组中获取值(在加载方法中编译)并崩溃。所以我需要viewDidAppear 等到至少一个对象被附加到数组中。
信号量或温度值的种类?
提前致谢!
附:数组中的每个项目都表示具有构成 UI 的数据的结构。用户与此 UI 交互,因此必须使用数组中的第一项加载一次。要切换到下一项,用户只需单击“下一项”,UI 会根据数组中的下一项进行更改。这就是为什么我希望数据在后台获取并允许用户立即工作。 (不可能立即跳转到第 5、10 或 1001 个元素,在用户进入这些页码之前会有足够的时间获取数据)
P.P.S 仍然没有正确的决定:(
【问题讨论】:
-
告诉,不要问。使用异步完成块并在完成块中设置数据数组/重新加载表视图。
-
@vadian 不幸的是,它会“冻结”界面并长时间加载“进度条”。
-
您的 UI 不应依赖于获取的数据。想象一下,Internet 连接将不可用。即使在这种情况下,您的 UI 也应该是响应式的。在真实数据可用之前显示一些占位符或空数据。
-
@user3441734 是的,我理解正确,但我想在加载几个数据后使其处于活动状态。如果没有数据(没有连接)它只会告诉用户它
标签: swift uiviewcontroller grand-central-dispatch viewdidload viewdidappear