2017-03-03 9 views
1

알림을 푸시합니다. 데이터베이스에 데이터가 없으면 표시 전에 데이터가 다운로드됩니다. 나는 Grand Central Dispatch을 사용하여 시간 간격을 만들었지 만 사용자가 약한 인터넷 응용 프로그램 인 경우 예를 들어 적합하지 않습니다.신속하게 장벽을 수행하는 방법 3

데이터를 다운로드하기 전에 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) 
    } 
} 

플랫폼 아이폰 OS 9 *, 아이폰 OS 3

답변

0

당신이 말한대로 큐가 항상 있기 때문에 작동하지 않습니다 지연, 때로는 인터넷 연결이 너무 느립니다 수신 된 데이터가 없으므로 프로그램이 오류로 실패 할 수 있습니다. 인터넷에서 다운로드하는 동안 완료 처리 방법을 확인하십시오. 내부에는 DispatchQueue 클로저에서 지정한 코드를 사용합니다.