【发布时间】:2016-07-11 06:19:18
【问题描述】:
在并发线程中以阻塞方式执行某些逻辑的最佳做法是什么(例如,dispatch_sync(MyConcurrentQ) -//DB 连接) - 并以阻塞方式轮询主队列中的完成情况,所以仅在并发线程完成后才显示下一个视图?
【问题讨论】:
-
单例不能替代您提到的任何通信方法。单例使对象 A 可以获取对其他对象 B 的引用,但它不提供在对象 A 中执行某些代码以响应对象 B 的更改的方法。对象 A 需要轮询 B 的属性,寻找变化,这不是一个好主意。顺便说一句,您链接到的那个“单例”示例是我见过的最糟糕的代码。它创建了越来越深的视图控制器嵌套,并鼓励使用全局变量(无论如何都不是全局变量)
-
我正在使用第 3 方框架建立与某个数据库的连接,我需要显示进度条,直到我的连接成功建立,该框架有 void API 和一个 ConnectionListener,我从中设置了我的全局变量“Done = True”并在我的 ViewController 中轮询它以关闭进度条,实现这一点的最佳实践是什么,我仍然是 swift iOS 世界的初学者
-
NSNotification 与线程?不。 stackoverflow.com/questions/15968430/…
-
查看
NSOperation和NSOperationQueue。它们是 GCD 的高级包装器,允许您添加依赖项并配置最大级别的并发性。如果您需要更多帮助,请查看WWDC 2015 video
标签: ios swift singleton global-variables grand-central-dispatch