我正在使用来自不同来源的块异步使用块,例如......
在完成每个源的数据提取后,我发布通知并立即将各个项目添加为子视图。
问题:项目/视图仅在延迟几秒后显示,有时甚至更长(在获得实际结果响应后很长时间)。对于日历事件等同步提取的项目,情况并非如此 - 它们会立即显示。
(奇怪的是使用新的Xcode6实时视图调试器,我可以在那里看到新的项目视图,但不能在实际的模拟器或设备中看到。)
这可能与主队列上没有发生的异步提取有关吗? 无论如何要改变这种异步行为,所有结果都会立即显示为生成的视图吗?
答案 0 :(得分:1)
发布通知时,您是否将其分发到主队列?如果没有,您的处理程序是否将UI更新分派给主队列?
当您从后台线程发布通知时,将在后台线程上调用该处理程序。因此,如果您尝试执行UI更新以响应从后台线程发送的通知而不将UI更新发送回主队列,您将看到您描述的行为类型。