iphone – NSOperation和NSNotificationCenter在主线程上

iphone – NSOperation和NSNotificationCenter在主线程上,第1张

概述我有一个NSOperation。完成后,我开火NSNotificationCenter让程序知道NS *** 作完成并更新gui。 对于我理解的NSNotification的监听器不会在主线程上运行,因为NSOperation不在主线程上。 当我开始我的活动时,我如何做到这一点,让听众在主线程上运行? [[NSNotificationCenter defaultCenter] postNotificati 我有一个NSOperation。完成后,我开火NSNotificationCenter让程序知道NS *** 作完成并更新gui。

对于我理解的NSNotification的监听器不会在主线程上运行,因为NSOperation不在主线程上。

当我开始我的活动时,我如何做到这一点,让听众在主线程上运行?

[[NSNotificationCenter defaultCenter] postNotificationname:@"myEventname" object:self];
解决方法 您可以使用 performSelectorOnMainThread:withObject:waitUntilDone:使用辅助方法,类似于以下示例。

.....[self performSelectorOnMainThread:@selector(fireNotification) withObject:nil waitUntilDone:YES];...- (voID)fireNotification {  [[NSNotificationCenter defaultCenter] postNotificationname:@"myEventname" object:self]; }

如果您不等待完成,您将需要考虑在主线程被调用之前其他线程可能引用可能已被清理的对象的情况。

总结

以上是内存溢出为你收集整理的iphone – NSOperation和NSNotificationCenter在主线程上全部内容,希望文章能够帮你解决iphone – NSOperation和NSNotificationCenter在主线程上所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1039210.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存