我有个问题。我想知道我生成另一个线程并设置NSNotificationCenter来观察主线程中的事件?这样做最好的是什么?
我真的很感谢你的帮助
答案 0 :(得分:2)
海报同步传递通知。没有队列。当你调用postNotification:
时,它将在当前线程上顺序运行所有观察者代码,然后返回。
如果观察者想要处理不同队列上的观察,那么您应该在观察者方法中使用dispatch_async
或NSOperation
将处理移动到适当的队列然后返回。
答案 1 :(得分:0)
您可以使用- (id)addObserverForName:(NSString *)name object:(id)obj queue:(NSOperationQueue *)queue usingBlock:(void (^)(NSNotification *))block
处理特定线程上的通知。
正如documentation所述,关于队列参数:
应添加块的操作队列。如果传递nil,则在发布线程上同步运行该块。