任何人都可以建议在后台下载多个文件说100s的解决方案。重要的是下载URL的生命周期为15分钟,因此我们需要获取下载URL然后开始下载。我们无法预取所有网址并将其添加到下载任务中,因为这可能导致在几次成功下载后过期网址下载失败。
提前致谢。
答案 0 :(得分:0)
您可以执行以下操作:
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
中执行didSet块
NSData
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0)
表示从url获取数据将在不同的线程上完成,以防止阻止UI线程data
,并执行此变量的didSet
。在此块中,您可以实现解析算法。注意强>