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