0

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

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

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

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

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

4

1 回答 1

0

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

请参阅 Apple NSNotificationCenter 文档

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

于 2013-03-24T14:15:04.723 回答