五个小时过去了,我正试着修复这个错误。我有两个VC。在第一个VC中有一个触发segue的点击手势。
@IBAction func addMaterial(sender: AnyObject){
dispatch_async(dispatch_get_main_queue()) {
self.performSegueWithIdentifier("addNewMaterialSegue", sender: self)
}
}第二次“维也纳公约”:
override func viewDidLoad() {
dispatch_async(dispatch_get_main_queue()) {
super.viewDidLoad()
print("viewDidLoad")
}
}
override func viewWillAppear(animated: Bool) {
print("viewWillAppear")
super.viewWillAppear(animated)
}从viewDidLoad到viewWillAppear大约需要5秒。我知道I'm not the first to ask this question,但我没有找到与“创建和呈现视图控制器应该在主线程上完成”不同的解决方案,而且ś不是我的情况。
发布于 2016-04-08 18:30:39
删除分派的异步文件。
你用dispatch_async告诉处理器的是
长话短说,删除dispatch_async,你的延迟就会消失。
发布于 2016-04-08 17:58:18
在示例代码中的任何地方删除dispatch_async。您已经在主队列中了。
编辑:
我得道歉。我试过你的代码,但没有发现任何问题。乍一看,您已经在主队列中执行的dispatch_async调用看起来非常可疑。我仍然认为他们必须被移除。但它们不会引起你所经历的问题。视图打开得非常快,没有任何延迟,即使您将调用放在dispatch_async中。所以,肯定还有另外一个问题。也许你可以提供更多的信息,更多的代码,或者最好的:整个项目。那么,找出问题应该很容易。
如果你不能放弃这个项目,你可以做这个检查:
print("Current thread \(NSThread.currentThread())")把这个放在每一个相关功能的每个条目上。让我们来看看目前在哪种情况下发生的一切。
https://stackoverflow.com/questions/36506024
复制相似问题