有人能帮我吗?我找不到完成语法的好例子.
var url : NSURL = NSURL.URLWithString("https://itunes.apple.com/search?term=\(searchTerm)&media=software")
var request: NSURLRequest = NSURLRequest(URL:url)
let config = NSURLSessionConfiguration.defaultSessionConfiguration()
let session = NSURLSession.sessionWithConfiguration(config)
NSURLSessionDataTask(session.dataTaskWithRequest(request, completionHandler: ((NSData!, NSURLResponse!, NSError!) -> Void)?)
谢谢!
aka*_*kyy 71
目前还不清楚你在问什么,但我注意到你在代码中有一些错误:
你应该创建你的session使用NSURLSession(configuration: config)
session.dataTaskWithRequest返回一个NSURLSessionDataTask,所以不需要将其包装NSURLSessionDataTask()(也就是实例化一个新NSURLSessionDataTask对象).
完成处理程序是一个闭包,下面是你如何创建特定的clousure:
{(data : NSData!, response : NSURLResponse!, error : NSError!) in
    // your code
}
这是更新的代码:
let url = NSURL(string: "https://itunes.apple.com/search?term=\(searchTerm)&media=software")
let request = NSURLRequest(URL: url)
let config = NSURLSessionConfiguration.defaultSessionConfiguration()
let session = NSURLSession(configuration: config)
let task = session.dataTaskWithRequest(request, completionHandler: {(data, response, error) in
    // notice that I can omit the types of data, response and error
    // your code
});
// do whatever you need with the task e.g. run
task.resume()
eXh*_*ted 12
如果您在完成语法方面遇到问题,可以在调用dataTaskWithRequest(..)之前创建完成函数以使其更清晰
func handler (data: NSData!, response: NSURLResponse!, error: NSError!) {
            //handle what you need
        }
session.dataTaskWithRequest(request, completionHandler: handler)
你也可以简单地使用它: -
let url = "api url"
let nsURL = NSURL
let task = NSURLSession.sharedSession().dataTaskWithURL(nsURL) {
(data, response, error) in
   // your condition on success and failure
}
task.resume()
| 归档时间: | 
 | 
| 查看次数: | 46880 次 | 
| 最近记录: |