在我目前正在構建的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 NSURLSession聽超時
- 2. NSURLSession - 請求超時
- 3. 的iOS:如何檢查是否流連接超時
- 4. 如何檢查會話是否超時?
- 5. 如何查找cron作業中是否超時或錯誤?
- 6. 使用NSURLSession下載代理(IOS,swift)
- 7. 如何檢查數組索引是否超出範圍SWIFT
- 8. Swift IOS:如何使用NSURLSession和didReciveData下載圖像?
- 9. 如何應用應用級別的NsUrlSession攔截器? iOS Swift?
- 10. 如何檢查字典是否包含Swift iOS中的bool值?
- 11. 如何查找對象是否來自類但不是超類?
- 12. Swift - 在後臺下載NSURLSession?
- 13. 如何使用Swift從NSURLSession獲取cookie?
- 14. Swift NSURLSession |的Xcode 6.1
- 15. Swift 2.0中的NSURLSession
- 16. NSURLSession,完成塊,Swift
- 17. Swift - 如何檢查TableView是否爲空
- 18. 如何檢查一個變量是否是Javascript中的超時?
- 19. Node.js DNS查找 - 如何設置超時?
- 20. iOS NSURLSession下載
- 21. 在Oracle DB中使用JDBC時如何查找連接是否超時或者憑據是否錯誤?
- 22. 如果用戶在swift iOS中點擊兩次,則取消NSURLSession
- 23. 如何查找CALayer是否在ios中雙擊
- 24. 如何檢測AsyncContext是否超時?
- 25. 不知道爲什麼NSURLSession超時
- 26. 檢查會話是否超時
- 27. 檢查超時是否已被清除?
- 28. 檢查會話是否超時在jquery
- 29. 檢查遊標是否超時
- 30. 檢查是否會話超時
我不是確定它是否適用於'NSURLSession',但是'NSURLConnection'將會失敗,委託方法將被調用,錯誤代碼爲'NSURLErrorTimeOut',如本答案所述:http://stackoverflow.com/a/12819297/433373 (編輯:關於'-sendSynchronousRequest:returningResponse:error:'的答案ID,但是 '-connection:didFailWithError:'也返回一個'NSError'對象。您可以檢查) –