2012-02-07 66 views
0

我開始在我的iOS項目中使用可達性來測試是否存在Internet連接。使用ASIHTTPRequest的可達性

我的應用程序包含在UITabBarController與3個不同的選項卡。每個標籤的根目錄是不同的UIViewController。在每個控制器中,我依靠用戶的操作提出幾個請求。

我的問題是如何創建一個全球性功能(或宏)使用每個功能,使用互聯網連接,而不必在每個控制器中重寫此功能。

可能有一個這樣做的功能?我看到有一種方法可以讓應用程序依靠網絡狀態發送通知。但是,看看下面這個例子:

  1. 用戶抽頭UIButton
  2. 網絡可用,並請求啓動。
  3. 如果網絡出現故障,如何停止請求並顯示例如UIAlertView

我已經找遍了,但找不到我的問題的答案,謝謝。

回答

1

不能使用可達性檢測網絡是否可用,然後再發出網絡請求,因爲發出網絡請求的行爲可以在需要時調出網絡。可達性應該只用於檢測網絡在不可用後何時可用。

只要嘗試發出網絡請求 - 如果網絡不可用,您將收到錯誤消息。通常情況下,響應會馬上恢復,但如果網絡不穩定,可能需要一段時間,所以您不應該在主線程上進行同步網絡調用。如果可能的話使用NSURLConnection,當發生什麼事情時你會得到回調。

+0

我使用'ASIHTTPRequest'來進行異步請求。在提出請求之前,沒有更好的方法來檢查網絡是否可用嗎? – 2012-02-08 00:17:36

+0

不是一個可靠的,沒有。提出請求,檢查錯誤。該設備將關閉無線電以節省電力,並且發出請求的動作可以再次爲其供電。 – EricS 2012-02-08 04:27:20