NSURLSessionDownloadTask API 调用 Swift 语法说明

问题描述 投票:0回答:1

我正在学习进行基本的网络通话,并遵循教程。本教程介绍了并发性以及在后台线程中下载 JSON 数据。我想知道为什么在

sharedSession.downloadTaskWithURL
方法中
queryURL
将作为 NSURL 对象传递,而不是
baseURL
。我觉得我错过了一些非常明显的东西!

func searchRecipeData() {
    
    let baseURL = NSURL(string: "http://api.recipes.com/v1/api/recipes?_app_id=\(apiID)&_app_key=\(apiKey)")
    let queryURL = NSURL(string: "&q=onion+soup", relativeToURL: baseURL)!
    
    let sharedSession = NSURLSession.sharedSession()
    
    let downloadData: NSURLSessionDownloadTask = sharedSession.downloadTaskWithURL(queryURL, completionHandler: { (location: NSURL!, response: NSURLResponse!, error: NSError!) -> Void in
        
        if (error == nil) {
            
            let data = NSData(contentsOfURL: baseURL!)
            
            println(data)
            
        }
    })
    // Resumes it even though it hasn't started yet
    downloadData.resume()
    
}
ios swift concurrency nsurl
1个回答
1
投票

查看创建 queryURL 的第二个参数。 您正在传递 baseURL 常量。 发生的情况是“&q=onion+soup”查询参数被告知与基本 URL 相关。 queryURL 常量是完整的 URL,然后将其传递给 downloadTaskWithURL。

© www.soinside.com 2019 - 2024. All rights reserved.