How to use NSURLSessionDataTask in Swift

ios, swift

Solution

It's unclear what you're asking, but I noticed that you have a couple of errors in the code:

You should create your `session` using `NSURLSession(configuration: config)`

`session.dataTaskWithRequest` returns a `NSURLSessionDataTask`, so there's no need to wrap it inside `NSURLSessionDataTask()` (a.k.a instantiating a new `NSURLSessionDataTask` object).

The completion handler is a closure and here's how you create that particular clousure:

{(data : NSData!, response : NSURLResponse!, error : NSError!) in

    // your code

}

Here's the updated 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()

Problem

Can someone help me? I can't find a good example for the completion syntax. ``` 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)?) ```

Original source