【发布时间】:2016-02-15 19:18:11
【问题描述】:
我正在构建一个相当简单的 iOS 应用程序,它在启动时会加载一些视图并将它们堆叠在一起。
但是,我在应用程序启动和视图出现之间经历了很长的延迟。这些视图并不复杂,构建时间也很短。
起初我认为这可能是导致延迟的图像,因为我通过 URL 获取了它。但是在记录一些检查点之后,图像加载发生得相当快。
我在构建 UIView 时进行了类似的检查点日志记录,而且速度很快。
所以最后,我检查了在调用.addSubview 和视图实际出现之间是否存在差距,实际上是存在的。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
let returned = feedMngr.retrieveFeed()
if (returned) {
self.constructFeedStack()
self.view.addSubview(self.firstCardView!)
self.view.insertSubview(self.secondCardView!, belowSubview: self.firstCardView!)
self.view.insertSubview(self.thirdCardView!, belowSubview: self.secondCardView!)
self.view.insertSubview(self.fourthCardView!, belowSubview: self.thirdCardView!)
NSLog("fin")
}
}
记录“fin”后(应用启动后大约 5 秒),实际呈现视图之前会有 5-10 秒的延迟。
有人知道为什么会这样吗?
【问题讨论】: