iOS – 默认情况下,选择器处理程序是否在主队列上运行?

iOS – 默认情况下,选择器处理程序是否在主队列上运行?,第1张

概述假设,我正在从主踏板上展示一个UIAlertController,比如myAlert. myAlert有一个动作,defaultAction.我想知道默认情况下defaultActions处理程序是否在主队列上运行.换句话说,我想知道在下面的代码中是否在doStuff中有一些与UI相关的 *** 作,我是否需要用主队列包装这些UI任务,或者保证在OS中在主队列中运行? UIAlertController* 假设,我正在从主踏板上展示一个UIAlertController,比如myAlert. myAlert有一个动作,defaultAction.我想知道默认情况下defaultActions处理程序是否在主队列上运行.换句话说,我想知道在下面的代码中是否在doStuff中有一些与UI相关的 *** 作,我是否需要用主队列包装这些UI任务,或者保证在OS中在主队列中运行?

UIAlertController* myAlert = [UIAlertController alertControllerWithTitle:@"My Alert"                               message:@"This is an alert."                               preferredStyle:UIAlertControllerStyleAlert];UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault   handler:^(UIAlertAction * action) {      doStuff() // should I wrap doStuff in main queue,if doStuff has ui operations?   }];[alert addAction:defaultAction];[self presentVIEwController:alert animated:YES completion:nil];
解决方法 您实际上是在询问它是否在主队列上运行,而不是它是否是线程安全的.

如果一个对象可以从多个线程访问/修改而没有问题,则它是“线程安全的”.

您的问题的答案是, *** 作闭包将在主队列上运行,因为它是由用户交互产生的,因此您无需将UI更新显式地分派到主队列中.

总结

以上是内存溢出为你收集整理的iOS – 默认情况下,选择器/处理程序是否在主队列上运行?全部内容,希望文章能够帮你解决iOS – 默认情况下,选择器/处理程序是否在主队列上运行?所遇到的程序开发问题。

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

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

原文地址:https://www.54852.com/web/1059980.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存