这是一个“最佳实践”问题,我似乎无法在网上找到一个好的答案.我正在创建一个静态
代码库,它提供了几种委托
方法来进行其他事情的进度反馈.
该库管理它自己的队列,所以下载的事情显然没有在主线程上完成,但我的问题是我应该确保我的委托方法总是在主线程上调用,或者是否可以从排队的线程调用它我我在用?如果他想在我的委托方法中进行UI更新,那么依赖于使用该库来检查他是否在主线程上的开发人员?
干杯,
山姆
你可以这样做;你只需要记录好这一点.
有些API会在主线程上回调您,有些API会在您用于启动工作的线程(或runloop)上回调,而其他API则根本不做任何保证.有些甚至会让你传入一个用于所有回调的GCD队列.
请记住,委托/回调可以阻止非常重要的时间,因此如果您的API需要尽快恢复工作,您当然希望分派到另一个线程或队列.
说完这一切之后,除非性能对您或API的用户至关重要,否则我会为开发人员提供最方便的主线程.