在我目前正在構建的iOS應用程序中,我試圖在會話超時時向用戶顯示消息。我閱讀了NSURLSessionDelegate
的文檔,但找不到任何讓我知道會話是否超時的方法。我如何去做這件事?任何幫助表示讚賞。iOS Swift:如何查找NSURLSession是否超時
5
A
回答
8
可以調用的方法是這樣的:
let request = NSURLRequest(URL: NSURL(string: "https://evgenii.com/")!)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { (data, response, error) in
if error != nil {
if error?.code == NSURLErrorTimedOut {
println("Time Out")
//Call your method here.
}
} else {
println("NO ERROR")
}
}
task.resume()
+0
看起來不太健壯(或未來的證明)。您正在對錯誤描述進行硬編碼;它可能會在未來的操作系統更新中更改(而不是用戶可能會將其設備設置爲除英語之外的其他語言)。您可以使用 –
+0
:print(error「ErrorDefault」) – johnny
0
我使用以下斯威夫特extension
檢查錯誤是否是超時或其它網絡錯誤,用斯威夫特4
extension Error {
var isConnectivityError: Bool {
// let code = self._code || Can safely bridged to NSError, avoid using _ members
let code = (self as NSError).code
if (code == NSURLErrorTimedOut) {
return true // time-out
}
if (self._domain != NSURLErrorDomain) {
return false // Cannot be a NSURLConnection error
}
switch (code) {
case NSURLErrorNotConnectedToInternet, NSURLErrorNetworkConnectionLost, NSURLErrorCannotConnectToHost:
return true
default:
return false
}
}
}
相關問題
- 1. 的iOS:如何檢查是否流連接超時
- 2. 如何檢查會話是否超時?
- 3. 如何查找cron作業中是否超時或錯誤?
- 4. 使用NSURLSession下載代理(IOS,swift)
- 5. Swift IOS:如何使用NSURLSession和didReciveData下載圖像?
- 6. 如何應用應用級別的NsUrlSession攔截器? iOS Swift?
- 7. 如何檢查字典是否包含Swift iOS中的bool值?
- 8. 如何查找對象是否來自類但不是超類?
- 9. Swift - 在後臺下載NSURLSession?
- 10. Swift NSURLSession |的Xcode 6.1
- 11. NSURLSession,完成塊,Swift
- 12. 如何使用Swift從NSURLSession獲取cookie?
- 13. Swift - 如何檢查TableView是否爲空
- 14. 如何查找CALayer是否在ios中雙擊
- 15. 不知道爲什麼NSURLSession超時
- 16. iOS NSURLSession,如何在didCompleteWithError中重試
- 17. 檢查超時是否已被清除?
- 18. 檢查會話是否超時
- 19. 檢查是否會話超時
- 20. 檢查會話是否超時在jquery
- 21. 如何檢測AsyncContext是否超時?
- 22. 如何檢查iOS是否有更新?
- 23. WGET是否超時?
- 24. 如何檢查日期時間是否超過20秒
- 25. 如何檢查時間戳是否超過特定月數?
- 26. 如何檢查Liferay會話是否在Javascript中超時?
- 27. 如何檢查iOS Swift 2中的WiFi是否開啓或關閉?
- 28. 如何以編程方式檢查方向是否鎖定在iOS上 - Swift
- 29. 如何查找iOS版本
- 30. swift iOS - NSURLSession沒有正確下載多個文件
我不是確定它是否適用於'NSURLSession',但是'NSURLConnection'將會失敗,委託方法將被調用,錯誤代碼爲'NSURLErrorTimeOut',如本答案所述:http://stackoverflow.com/a/12819297/433373 (編輯:關於'-sendSynchronousRequest:returningResponse:error:'的答案ID,但是 '-connection:didFailWithError:'也返回一個'NSError'對象。您可以檢查) –