Я пытаюсь использовать RESTful API, который возвращает некоторые json-данные. Я хочу инкапсулировать код, который создает HTTP-запрос, и устанавливает заголовки в свой собственный метод, поэтому я могу вызвать его, введя строчку url, а затем вернуть метод JSON-объекту.
В следующем фрагменте кода я уже создал объект запроса и задал заголовки, и я вызываю эту переменную "req". Я не объявлял никаких объектов с именем data, response или error. У меня есть следующий код, который правильно выводит объект JSON
let sesh = NSURLSession.sharedSession()
    let dataTask = sesh.dataTaskWithRequest(req, completionHandler: {(data, response, error) in
        var jsonError : NSError?
        let jsonBlob = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableLeaves, error: &jsonError)
        println(jsonBlob)
        });
    dataTask.resume()
Итак, вот мой вопрос. Как мне сделать так, чтобы этот блок completHandler смог вернуть jsonBlob, который имеет тип "AnyObject!"? Если я немного модифицирую код, чтобы быть следующим:
let sesh = NSURLSession.sharedSession()
    let dataTask = sesh.dataTaskWithRequest(req, completionHandler: {(data, response, error) -> AnyObject! in
        var jsonError : NSError?
        let jsonBlob : AnyObject! = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableLeaves, error: &jsonError)
        return jsonBlob
        });
    dataTask.resume()
то программа не будет компилироваться как вызов dataTaskWithRequest: completeHandler дает предупреждение компилятора:
 Could not find an overload for 'dataTaskWithRequest' that accepts the supplied arguments
Я не понимаю этого. Я использую правильный синтаксис для возврата закрытий, как указано на этой странице Swift Docs:

