【发布时间】:2017-04-12 01:21:19
【问题描述】:
假设,我从主胎面展示一个UIAlertController,比如myAlert。 myAlert 有一个动作,defaultAction。我想知道defaultActions 处理程序是否默认在主队列上运行。换句话说,我想知道下面代码中doStuff内部是否有一些UI相关的操作,我是否需要将这些UI任务包装在主队列中,或者操作系统保证在主队列中运行?
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];
【问题讨论】:
标签: multithreading thread-safety handler uialertcontroller