2015-09-19 4 views
1

Я использую следующий код, чтобы проверить подключение к Интернету. Он работал правильно, но после обновления Swift 2.0 теперь я вижу ошибку в строке var data = NSURLConnection.sendSynchronousRequest(request, returningResponse: &response, error: nil) as NSData?, в которой говорится о дополнительном аргументе «ошибка» при вызове.Swift 2.0 NSURLConnection sendSynchronousRequest

class func isConnectedToNetwork()->Bool{ 

    var Status:Bool = false 
    let url = NSURL(string: "http://google.com/") 
    let request = NSMutableURLRequest(URL: url!) 
    request.HTTPMethod = "HEAD" 
    request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData 
    request.timeoutInterval = 10.0 

    var response: NSURLResponse? 

    var data = NSURLConnection.sendSynchronousRequest(request, returningResponse: &response, error: nil) as NSData? 

    if let httpResponse = response as? NSHTTPURLResponse { 
     if httpResponse.statusCode == 200 { 
      Status = true 
     } 
    } 

    return Status 
} 

Есть ли у вас идеи, к чему я должен его изменить? Благодаря

ответ

6

Если посмотреть на яблоки документации (https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSURLConnection_Class/#//apple_ref/occ/clm/NSURLConnection/sendSynchronousRequest:returningResponse:error :) вы увидите, что определение изменено следующим образом:

class func sendSynchronousRequest(_ request: NSURLRequest, 
      returningResponse response: AutoreleasingUnsafeMutablePointer<NSURLResponse?>) throws -> NSData 

Они удалили параметр ошибки и метод генерирует теперь ErrorType, если запрос не выполняется. Так что это должно работать:

do { 
    let data = try NSURLConnection.sendSynchronousRequest(request, returningResponse: &response) 
} catch (let e) { 
    print(e) 
} 

Однако вы не должны использовать этот метод: Это осуждается в пользу NSURLSession так прошивкой 9 и OS X 10.11.

+0

спасибо. Что я должен использовать вместо iOS 9? –

+0

NSURLSession заменил его официально. – macshome