0
任何人都可以提出一個下載多個文件的解決方案,說100秒,在後臺。重要的是,下載網址的使用壽命爲15分鐘,因此我們需要獲取下載網址並開始下載。我們無法預取所有網址並將其添加到下載任務,因爲這可能會導致在幾次成功下載後下載失效的網址。在後臺狀態下載多個小文件
在此先感謝。
任何人都可以提出一個下載多個文件的解決方案,說100秒,在後臺。重要的是,下載網址的使用壽命爲15分鐘,因此我們需要獲取下載網址並開始下載。我們無法預取所有網址並將其添加到下載任務,因爲這可能會導致在幾次成功下載後下載失效的網址。在後臺狀態下載多個小文件
在此先感謝。
,你可以做到以下幾點:
var data : NSData?{
didSet{
//Parse the data to any thing you want
}
}
var urlFetchedAsString : String? {
didSet{
if(urlFetchedAsString == nil)
return
let url : NSURL = NSURL(string: urlFetchedAsString!)!
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), {
() -> Void in
data = NSData(contentsOfURL: url)
})
}
}
func fetchURL() ->String{
//Fetched Your url and return
}
override func viewDidLoad(){
super.viewDidLoad()
urlFetchedAsString = fetchURL()
}
說明
urlFetchedAsString
每次設置NSData
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0)
意味着從URL中獲取數據將在不同的線程來完成,以防止阻塞UI線程data
將被設置和didSet
這個變量將被執行之後。在這個塊中,你可以實現你的解析算法。注意