gpt4 book ai didi

ios - NSNotificationCenter 事件是同步接收还是异步接收?

转载 作者:IT王子 更新时间:2023-10-29 07:43:11 26 4
gpt4 key购买 nike

如果一个类注册了某种类型的 NSNotificationCenter 事件,而另一个类发布了该类型的事件,那么接收器中的代码会在发布类之前(同步)还是之后(异步)执行继续?

- (void)poster {
[[NSNotificationCenter defaultCenter]
postNotificationWithName:@"myevent"
object:nil];
NSLog(@"Hello from poster");
}

- (void)receiver {
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector:(mySelector)
name:@"myevent"
object:nil];
}

- (void) mySelector:(NSNotification *) notification {
NSLog(@"Hello from receiver");
}

在上面的代码示例中,“Hello from receiver”是在“Hello from caller”之前还是之后打印?

最佳答案

如 NSNotificationCenter 文档中所述 NSNotificationCenter Class Reference同步发布通知。

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

在多线程应用程序中,通知始终在发布通知的线程中传递,该线程可能与观察者自己注册的线程不同。

希望对你有帮助。

关于ios - NSNotificationCenter 事件是同步接收还是异步接收?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16298671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com