当我在完成块中调用 performSegueWithIdentifier 时,如果我不将调用包装在 dispatch_async 中,则实际上需要 10 秒才能真正发生转场。但是,我可以做其他事情而无需将它们包装在同一个 dispatch_async 中,例如执行核心数据工作,或者记录“事物”...
关于这是如何工作的以及为什么......我迷路了。如果这不是问这样的问题的正确地方,我深表歉意。
EKEventStore *store = [[EKEventStore alloc] init];
[store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{
[self performSegueWithIdentifier:self.phaseSegue sender:self];
});
}];
最佳答案
从 documentation :
此外,所有与 UI 相关的东西 都必须在主队列上完成。这就是你需要 dispatch_async
的方式。
关于ios - 为什么在 requestAccessToEntity :completion? 中使用 performSegueWithIdentifier 时使用 dispatch_async,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22315313/