我的任务是下载内容,解析内容,保存在数据库中并在完成后更新UI(或通知用户有关错误)。这将在应用程序的不同部分中使用,因此我想将此代码提取为单独的类并用作异步外观。我使用NSURLConnection来处理网络任务。 NSURLConnection在单独的线程中调用我的回调。但是我的UI代码应该在主线程中运行。我可以存储一组块来调用它们并使用dispatch_async从主线程调用它们,但这意味着这个主线程将被硬编码。它找我想要重新发明轮子,并且在目标c中应该使用一些机制来在线程之间进行通信,但是我找不到它。基本上我想要:
接收方订阅接收具有给定标识符的消息,并指定应分派通知的线程。
发件人发送邮件标识符和一些附加数据。
所有订阅的接收者都在他们指定的线程中获取此消息。
还是有另一种模式适合我的任务吗?
答案 0 :(得分:0)
您可以使用NSNotificationCenter
在不同线程上运行的对象之间进行通信。并发布来自不同线程的通知。
See Apple NSNotificationCenter Documentation
更新主线程使用的UI元素
[self performSelectorOnMainThread:@selector(somefunction) withObject:nil waitUntilDone:NO];