目标c,通知其他线程

时间:2013-03-24 14:10:59

标签: objective-c asynchronous

我的任务是下载内容,解析内容,保存在数据库中并在完成后更新UI(或通知用户有关错误)。这将在应用程序的不同部分中使用,因此我想将此代码提取为单独的类并用作异步外观。我使用NSURLConnection来处理网络任务。 NSURLConnection在单独的线程中调用我的回调。但是我的UI代码应该在主线程中运行。我可以存储一组块来调用它们并使用dispatch_async从主线程调用它们,但这意味着这个主线程将被硬编码。它找我想要重新发明轮子,并且在目标c中应该使用一些机制来在线程之间进行通信,但是我找不到它。基本上我想要:

接收方订阅接收具有给定标识符的消息,并指定应分派通知的线程。

发件人发送邮件标识符和一些附加数据。

所有订阅的接收者都在他们指定的线程中获取此消息。

还是有另一种模式适合我的任务吗?

1 个答案:

答案 0 :(得分:0)

您可以使用NSNotificationCenter在不同线程上运行的对象之间进行通信。并发布来自不同线程的通知。

See Apple NSNotificationCenter Documentation

更新主线程使用的UI元素 [self performSelectorOnMainThread:@selector(somefunction) withObject:nil waitUntilDone:NO];