2

是否可以运行通知,例如

-(void) testMethod
{
   [[NSNotificationQueue defaultQueue] enqueueNotification:[NSNotification    notificationWithName:@"TEST123" object:self userInfo:parms]postingStyle:NSPostNow  coalesceMask:NSNotificationNoCoalescing forModes:nil];

NSLog(@"test123");
//.....

以便“-(void)testMethod”继续执行 NSLog,...,而通知调用的方法确实完成了。有没有办法解决它,没有线程?

4

2 回答 2

0

我认为您想异步调用方法。答案是否定的:你不能在同一个线程中异步调用方法。检查文档:

通知中心同步向观察者发送通知。换句话说, postNotification: 方法在所有观察者都收到并处理通知之前不会返回。要异步发送通知,请使用 NSNotificationQueue。

于 2011-06-12T00:07:35.770 回答
0

NSNotificationQueue 不用于异步目的。参考:NSNotificationQueue 对象(或简单的通知队列)充当通知中心(NSNotificationCenter 的实例)的缓冲区。通知中心在发布通知时分发通知,而放入队列的通知可以延迟到当前通过运行循环结束或运行循环空闲为止。也可以合并重复的通知,以便在发布多个通知时只发送一个通知

于 2012-09-22T15:27:02.270 回答