如何在swift 3中做障碍
Posted
技术标签:
【中文标题】如何在swift 3中做障碍【英文标题】:How to do barrier in swift 3 【发布时间】:2017-07-23 03:45:21 【问题描述】:我会推送通知。如果数据库中没有数据,则在显示之前下载。我用Grand Central Dispatch
做了一个时间间隔,但它不正确,因为例如如果用户是一个弱互联网应用程序下降。
GCD 的屏障在下载数据之前如何延迟数据的显示?
这段代码有时间间隔:
if equal == false
let url = "https://****.**/json/post/\(data)"
self.download.getLastestNews(url)
let when = DispatchTime.now() + 2
DispatchQueue.main.asyncAfter(deadline: when)
let newsCategory = self.realm.objects(News.self).filter("newsID == \(self.id)")
vc.titleText = (newsCategory.first?.newsTitle)!
vc.fullText = (newsCategory.first?.newsFullText)!
vc.imageLink = (newsCategory.first?.newsImage)!
if let tabBarController = self.window?.rootViewController
tabBarController.present(vc, animated: true, completion: nil)
平台 iOS 9.*、iOS 3
【问题讨论】:
【参考方案1】:延迟队列并不总是有效,因为正如您所说,有时互联网连接太慢并且可能没有接收到数据,因此程序可能会失败并出现错误。从 Internet 下载任何内容时,请检查完成处理方法。在它们内部使用您在 DispatchQueue 闭包中提供的代码。
【讨论】:
以上是关于如何在swift 3中做障碍的主要内容,如果未能解决你的问题,请参考以下文章