, . , , API. , " ", , . , , " URL, ". , ? /, . , - API ?
, :
sessionEnded ( completionHandler ), , NSError, , .
sessionEnded ?.
, .
, ( data nil) NSError.
, , , , Cocoa, . , - performURLRequest.
, NSURLSessionTask, , (, , cancel , ).
, - :
func performURLRequest (address: String, completionHandler: ((NSDictionary!, NSError!) -> Void)?) -> NSURLSessionTask {
let url = NSURL(string: address)
let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {(data, response, error) in
if data == nil {
sessionEnded?(nil, error)
} else {
var parseError: NSError?
let parsedObject = NSJSONSerialization.JSONObjectWithData(data, options: nil, error:&parseError) as? NSDictionary
completionHandler?(parsedObject, parseError)
}
}
task.resume()
return task
}
:
performURLRequest("http://www.example.com/some/path") { responseDictionary, error in
if responseDictionary == nil {
println(error)
return
}
}