Sam*_*io2 8 queue delegates grand-central-dispatch ios
这是一个"最佳实践"问题,我似乎无法在网上找到一个好的答案.我正在创建一个静态代码库,它提供了几种委托方法,用于进行反馈等.
库管理它自己的队列,所以下载的内容显然不是在主线程上完成的,但我的问题是我应该确保我的委托方法总是在主线程上调用,还是可以从排队的线程中调用它我在用?并依赖于使用该库的开发人员,如果他想在我的委托方法中进行UI更新,则检查他是否在主线程上?
干杯,山姆
两种方法都可以;你只需要很好地记录这一点。
有些 API 会在主线程上回调您,有些会在您用来启动工作的线程(或运行循环)上回调您,而另一些则根本不做任何保证。有些甚至会让你传入一个用于所有回调的 GCD 队列。
请记住,委托/回调可能会阻塞相当长的时间,因此如果您的 API 需要尽快恢复工作,您当然希望分派到另一个线程或队列。
话虽如此,除非性能对您或您的 API 用户至关重要,否则我会选择对开发人员来说最方便的主线程。
| 归档时间: |
|
| 查看次数: |
1753 次 |
| 最近记录: |