NSURLSessionDownloadTask API 对 Swift 中语法的调用说明
NSURLSessionDownloadTask API call clarification on syntax in Swift
我正在学习进行基本的网络呼叫,并正在学习教程。本教程通过并发,并在后台线程中下载 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()
}
查看创建查询的第二个参数URL。您正在传递 baseURL 常量。发生的事情是“&q=onion+soup”查询参数被告知是相对于 baseURL 的。 queryURL 常量是完整的 URL,然后传递给 downloadTaskWithURL.
我正在学习进行基本的网络呼叫,并正在学习教程。本教程通过并发,并在后台线程中下载 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()
}
查看创建查询的第二个参数URL。您正在传递 baseURL 常量。发生的事情是“&q=onion+soup”查询参数被告知是相对于 baseURL 的。 queryURL 常量是完整的 URL,然后传递给 downloadTaskWithURL.