2015-03-31 86 views
1

我工作在一個新的應用程序寫在swift中,我看過這個錯誤消息垃圾郵件遍及所以說:重新啓動模擬器。Swift NSURLConnection立即返回1005錯誤

在我的情況下,這似乎不是答案,似乎使用完全相同的方法編寫的一個較舊的應用程序編寫的Objective-C工作正常,但是當我將NSUrlConnection調用到Api(我們的)它似乎不適用於新的應用程序。

響應是一個適當的200與一些JSON數據,沒有重定向它工作正常我正在同時開發的Android應用程序。

basicly我有:

func getRequest() -> NSMutableURLRequest { 
     let request = NSMutableURLRequest(URL: NSURL(string: package.fullPath)!) 
     request.HTTPMethod = package.apiMethod.description; 
     request.HTTPBody = "hi".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true) 
     return request; 
    } 

    func execute() { 
     conn = NSURLConnection(request: getRequest(), delegate: self); 
     if let c = conn { 
      Debug.log("** api-connection-start **"); 
     } 

    } 

相關偵聽器(該類實現NSURLConnectionDataDelegate):

func connection(connection: NSURLConnection!, didReceiveResponse response: NSURLResponse!) { 
    Debug.log("** api-recieved-url-response? **") 
    let httpResponse = response as NSHTTPURLResponse 
    statusCode = httpResponse.statusCode 
} 

func connection(connection: NSURLConnection!, didReceiveData data: NSData!) { 
    Debug.log("** api-recieving-data **") 
    self.responseData.appendData(data) 
} 

func connection(connection: NSURLConnection, didFailWithError error: NSError) { 
    Debug.log("** api-fail-with-error **") 
    ErrorClass.message(error) 
    if let responseListener = listener { 
     responseListener.onError(package, error:error) 
    } 
} 

我對所有這些輔助方法斷點,只有didFailWith錯誤會立即調用的錯誤包含:

2015-03-31 16:58:29.853 myappname[537:4136] { 
    NSErrorFailingURLKey = "http://xxxxxxxx/valid/api/call"; 
    NSErrorFailingURLStringKey = "http://xxxxxxxx/valid/api/call"; 
    NSLocalizedDescription = "The network connection was lost."; 
    NSUnderlyingError = "Error Domain=kCFErrorDomainCFNetwork Code=-1005 \"The network connection was lost.\" UserInfo=0x7fdf3bc465d0 {NSErrorFailingURLStringKey=http://xxxxxxxx/valid/api/call, NSErrorFailingURLKey=http://xxxxxxxx/valid/api/call, _kCFStreamErrorCodeKey=-4, _kCFStreamErrorDomainKey=4, NSLocalizedDescription=The network connection was lost.}"; 
    "_kCFStreamErrorCodeKey" = "-4"; 
    "_kCFStreamErrorDomainKey" = 4; 
} 

顯然我替換d公司名稱和確切的稱爲網址,因爲我不能分享這些,我可以保證這些都是正確的。

有沒有人看到造成我的組織的錯誤?

+0

1005網絡連接丟失。你確定你已經連接到互聯網 – sasquatch 2015-03-31 17:57:52

+0

polder objectieve c app連接使用nsurl連接就好了。使用Safari瀏覽器的Alsof也可以運行 – 2015-03-31 21:53:07

+0

我覺得它現在可以正常工作,即使我昨天甚至重新啓動了,但我想我應該花更多時間在完全清理項目併除去重新啓動的情況下進行清理。 – 2015-04-01 06:43:39

回答

0

哭了好幾個小時後,我睡着了,醒來後又重新開始工作,它神奇地再次運作。

感謝奧巴馬! 無論如何,只要確保清除了除xcode之外的所有數據,這可能會導致這些問題,而不僅僅是重新啓動模擬器。

0

錯誤是「網絡連接丟失」。

這是您必須期待的錯誤,因爲您的應用的用戶可能隨時丟失其網絡連接。它可以隨時回來。

解決問題並不是你的力量。你必須應付它,例如不會崩潰,而不是掛起,當它發生時。解決問題也沒有用戶的力量。

較舊的應用程序工作正常,因爲您在網絡連接沒有丟失的不同時間使用它。看起來,不要哭泣,你應該思考發生了什麼。如果您的網絡連接丟失,除了等待外,您無法做任何事情。

所有這些你一直在嘗試的東西都是毫無意義的;沒有什麼會解決丟失的網絡連接。 (好吧,在我的家裏,確保沒有人踢連接路由器到電話插頭的電纜會有幫助)。

+0

我嘗試了100多次,我猜這不是偶然,它有一些臨時文件。 – 2015-04-03 14:00:26