2014-09-03 91 views
8

我使用Xcode beta6。 我創建了一個應用程序,它有一個下載器類,這是下載類:爲什麼NSURLConnection失敗,錯誤域= NSURLErrorDomain代碼= -1005「網絡連接丟失。」在Swift iOS8中?

class Downloader : NSObject { 

    private var _connection : NSURLConnection? 
    private var _downloadedData: NSMutableData? 

    func getDataFromURLString(urlToRequest: String!, aType: DownloadedDataType) { 

     _downloadedData = NSMutableData() 

     var request : NSMutableURLRequest = NSMutableURLRequest(URL: NSURL(string: urlToRequest), cachePolicy: .ReloadIgnoringLocalCacheData, timeoutInterval: 20.0) 
     request.setValue("", forHTTPHeaderField: "Accept-Encoding") 

     self._connection = NSURLConnection(request: request, delegate:self) 
    } 

    func connection(connection: NSURLConnection!, didReceiveResponse response: NSURLResponse!) { 
     println("Data expected size: \(response.expectedContentLength)") 
    } 

    func connectionDidFinishLoading(connection: NSURLConnection!) { 
     println("finished") 
    } 

    func connection(connection: NSURLConnection!, didFailWithError error: NSError!) { 
     println("error: \(error)") 
    } 

    func connection(connection: NSURLConnection!, didReceiveData data: NSData!) { 
     _downloadedData?.appendData(data) 
    } 

} 

該類運作良好,並得到正確的JSON結果時,服務器與局域網電纜在網絡上,但是當這臺服務器連接通過WiFi相同的網絡我得到這個錯誤來自iOS設備:

Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost." 

但它確實很奇怪,因爲如果我粘貼因此,只有在iOS設備上不能處理的JSON路徑,我看到了JSON的瀏覽器..,但我不知道我應該修復什麼.. 任何人都可以幫助我嗎?

因此,如果我的Mac mini用於開發的是Lan,而服務器是Lan,則一切正常。 但是,當我的Mac mini上的WiFi和我的服務器上的無線上網我得到這個錯誤...

+0

退出模擬器並重新運行項目。 – 2015-08-27 05:50:18

+4

[NSURLConnection GET請求可能重複-1005,「網絡連接丟失」](http://stackoverflow.com/questions/25797339/nsurlconnection-get-request-returns-1005-the-network-connection-was -lost) – Mogsdad 2015-12-09 16:27:41

回答

2

嗯,我的第一個問題是你嘗試完成相同的任務使用相同的邏輯/ IOS 7?這會給我們一個想法,如果這是Swift,iOS 8中的問題,或者是代碼中的問題。如果有,請在編輯/更新中發佈此代碼。

第二個問題:爲什麼你重寫accept-encoding?如果指定了標頭值,許多服務器需要那裏的東西。最好刪除。

第三個問題:您運行的是哪個版本的iOS 8測試版? FWIW,SO的一個簡單的搜索顯示了這個問題: Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost."

所以它可能是一個iOS 8測試版的錯誤。我建議首先嚐試objective-c,如果這也打破了,轉到開發者論壇併發布你的問題,以獲得蘋果的關注。你可能也想爲它打開一個雷達。

+0

有沒有修復?我正在使用iOS8(第一個公開發行版)和Objective-C遇到同樣的問題,但僅限於我家的WiFi。該錯誤不會發生在我嘗試的辦公室或其他WiFi網絡上。當我蜷縮端點時,它工作正常,所以它肯定是NSURLConnection的邊緣問題 – user2393462435 2014-09-27 15:17:33

+0

這是一組不同的情況,所以可能需要一個新的問題(隨時與適當的日誌鏈接,我會看看)。說,你有沒有在我的答案鏈接上看到後面的答案?在iOS 8的NSURLConnection上,HTTP Keep-alive似乎有些不可思議。也許這是做的? – 2014-09-28 18:32:06

+0

啊,我完全錯過了你的鏈接。這絕對是一個永恆的問題。謝謝。 – user2393462435 2014-09-28 19:31:39

0

我完全通過刪除我的Wi-Fi網絡連接並通過從網絡連接列表中選擇並重新提供密碼來重新實例化它來解決此問題。看到這裏我的堆棧溢出響應在頁面的底部:

NSURLConnection GET request returns -1005, "the network connection was lost"

+2

如果這個問題可以通過您的其他堆棧溢出帖子回答,那麼您應該將此問題標記爲重複,而不是發佈答案... – nhgrif 2015-06-15 00:55:37

相關問題