Исправление устаревания NSURLConnection от Swift 1.2 до 2.0

У меня есть функция, написанная на Swift 1.2, которая проверяет доступность адреса или IP. Вот :

func isHostConnected(hostAddress : String) -> Bool
{
    var response : NSURLResponse?
    let request = NSMutableURLRequest(URL: NSURL(string: hostAddress)!)
    request.timeoutInterval = 3

    let data = NSURLConnection.sendSynchronousRequest(request, returningResponse: &response, error: nil)

    return ((response as? NSHTTPURLResponse)!.statusCode == 200)
}

Теперь,NSURLConnection устарела, согласно предложению XCode, я попытался написать это, используяNSURLSession.dataTaskWithRequest, вот :

func isHostConnected(hostAddress : String) -> Bool
{
    let request = NSMutableURLRequest(URL: NSURL(string: hostAddress.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!)!)
    request.timeoutInterval = 3

    let session = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration(), delegate: nil, delegateQueue: NSOperationQueue.mainQueue())

    var responseCode = -1

    session.dataTaskWithRequest(request, completionHandler: {(data : NSData?, response : NSURLResponse?, error : NSError?) -> Void in
        responseCode = (response as? NSHTTPURLResponse)!.statusCode
    })!.resume()

    return (responseCode == 200)
}

Выше код всегда возвращаетсяложный (очевидно), так какcompletionHandler исполняется в отдельной теме.

Меня беспокоит то, могу ли я сделатьcompletionHandler() запустить на MainThread как-то такsendSynchronousRequest делает, блокируя это.

У меня есть причины не использовать «Apple's Reachabilty» здесь.

Любое предложение будет полезно. :)

Ответы на вопрос(1)

Ваш ответ на вопрос