2013-05-06 66 views
1

我有一個應用程序,在開始時它會檢查用戶的位置,然後獲取該位置的天氣。主要是風向和速度。不同類別的GCD

它執行正常檢查以查看它是否具有Intenet連接,但我發現如果存在連接,但非常緩慢,則應用程序會在啓動屏幕上凍結(執行啓動時檢查)。

我有一個類,這樣做,這是在啓動時調用後,主屏幕加載。俯視,GCD似乎是正確的路要走,但我可以得到的答案是顯示在主頁屏幕何時完成獲取數據?主要踏板將會離開或者繞過那個班級,並且已經到達主屏幕。

我需要也許使用像通知中心的東西來幫助標籤更新和重新加載?

感謝您的任何想法或代碼片段。 Jorgen

PS。我正在努力讓應用程序iOS 5.1保持舊iPad的開心。

+0

你如何檢查互聯網連接?爲什麼?在最新的WWDC上,每個開發者都被鼓勵跳過該部分,並直接進行網絡通信,並在反饋的'FALSE'分支中處理_no-connection_事件,因爲_Reachability_類的方法非常緩慢。 – holex 2013-05-06 18:09:28

+0

我有一種方法可以檢查我是否可以訪問apple.com – Jorgen 2013-05-06 18:48:37

回答

0

GCD似乎是正確的選擇,但是在獲取數據完成後,我能否在主屏幕上的標籤中顯示答案?主要踏板將會離開或者繞過那個班級,並且已經到達主屏幕。我是否需要使用類似Notification Center的內容來幫助標籤更新和重新加載?

是的,我認爲你在這裏的軌道非常好。讓我們保持這兩個問題分開,但:

  • 做你的工作背景,仍處於GCD後,你會回來到主線程,因爲你現在要更新的接口。這很簡單直接。

  • 如果您有溝通問題,通知可以是一個很好的解決方案。您可以廣播需要更新該標籤,並且如果正確的視圖控制器存在並正在偵聽,它將獲得該信息。

    儘管如此,你應該考慮一下你的架構,因爲可能比通知更好。一旦你回到主線程,爲什麼你不在一個地方,你有知道是否存在正確的視圖控制器並直接與它通話。我並不是說通知是壞的/錯誤的!我自己使用了這個解決方案,而通知是一種非常標準的從NSOperation回來的方式。我只是說,給它一點思考。