对于我理解的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在主线程上所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)