是否可以像'
那样运行通知-(void) testMethod { [[NSNotificationQueue defaultQueue] enqueueNotification:[NSNotification notificationWithName:@"TEST123" object:self userInfo:parms]postingStyle:NSPostNow coalesceMask:NSNotificationNoCoalescing forModes:nil]; NSLog(@"test123"); //.....
sothat“ - (void)testMethod”继续执行NSLog,...,没有那个方法,通知调用确实完成了。 无论如何解决它,没有线程?
答案 0 :(得分:0)
我认为你想异步调用方法。 答案是否定的:你不能在同一个线程中异步调用方法。 查看文档:
通知中心提供 向观察员发出通知 同步。换句话说, postNotification:方法没有 回到所有观察者都有 收到并处理了 通知。发送通知 异步使用 NSNotificationQueue。
答案 1 :(得分:0)
NSNotificationQueue不用于异步目的。 参考: NSNotificationQueue对象(或简称通知队列)充当通知中心(NSNotificationCenter的实例)的缓冲区。通知中心在发布时分发通知,而放入队列的通知可以延迟到当前通过运行循环结束或直到运行循环空闲为止。也可以合并重复通知,以便在发布多个通知时仅发送一个通知