我正在開發一個應用程序,它有幾個使用用戶當前位置的視圖控制器。由於用戶當前位置應該是相同的,無論我在哪個視圖中,我認爲在視圖控制器之間共享此位置是有意義的。我應該在應用程序委託中定義一個CLLocation,然後將每個視圖控制器usersCurrentLocation
設置爲與此匹配?當位置由一個視圖控制器更新時,我如何確保其他視圖控制器中的每個視圖控制器都能獲取更改?對我來說,這聽起來像是一個全球變量的工作,但我知道他們不是一個非常'可可'的做事方式。什麼是正確的方法來做到這一點?代碼示例會很有幫助。如何在我的應用程序中共享CLLocation?
0
A
回答
1
單身人士是完美的Cocoa做事方式,在應用程序啓動時實例化的「位置管理器」單身人士(或任何您選擇調用它的人)不僅可以將信息提供給任何需要該信息的信息,而且還可以定期檢查位置更改並將通知發送給任何聽衆。
馬特加拉格爾a great job of explaining singletons on his blog,幷包括一個超級方便的宏來做繁重的工作。
0
不要將位置指定爲屬性,而應將CCLocationManager視爲屬性。同樣數量的工作並保持最新狀態......只要您需要當前位置,只需發送location
消息即可。
0
這是一個哲學問題。如果它只是一個小數據,那麼是的,你的應用程序委託中的一個命名屬性是處理它的好方法。特別是如果它是應用程序的屬性(就像它在物理上運行的地方一樣)。我不介意。
更多的數據比,我更喜歡創建一個單獨的數據管理器類,所以可以得到在全球範圍內,但有自己的命名空間。
如果我是你,我會讓你所有的位置管理代碼都存在於應用程序委託本身中,並將個別viewcontrollers看作委託的位置管理器的「客戶端」,從委託的.currentLocation中獲取當前狀態(或其他)財產。
如果你能處理不時有些玄乎的準確性,您也可以考慮使用「上顯著變化更新」 CLLocationManager的模式,而不是活生生的GPS跟蹤。
相關問題
- 1. 如何在我的Angular應用程序中共享ng-template?
- 2. 如何通過消息共享應用程序共享應用程序鏈接
- 3. 我如何與我的離子應用程序共享媒體
- 4. 如何共享應用程序設置
- 5. Windows桌面共享API:如何共享一個應用程序
- 6. 在grails應用程序中共享resources.groovy
- 7. 如何爲我的應用程序啓用文件共享?
- 8. 在iOS應用程序中共享Sqlite與iTune文件共享。
- 9. 應用程序共享
- 10. android共享應用程序
- 11. 如何從我的應用程序共享數據
- 12. 如何共享我的Java應用程序
- 13. 如何共享.pdf,.doc文件到我的應用程序
- 14. 如何從我的應用程序共享臉書文本
- 15. 如何保護我的應用程序免受共享?
- 16. 如何添加共享按鈕到我的Android應用程序
- 17. 如何在iphone中的應用程序之間共享數據
- 18. 如何在iOS上的Swift中獲取共享應用程序?
- 19. Spring:如何在不同的應用程序中共享服務
- 20. 通過我的應用程序在xamarin.forms中共享圖像
- 21. 試圖在我的應用程序中共享模型
- 22. CLLocation如何解析數據到我的應用程序標籤
- 23. 如何讓我的應用程序顯示在可共享音頻的可用應用程序中
- 24. 如何在應用程序中獲得共享首選項?
- 25. 如何在故事板應用程序中共享一個UIView
- 26. 如何在j2ee應用程序中共享會話?
- 27. 如何獲得eclipse在RCP應用程序中共享圖像?
- 28. 如何在Spring Web應用程序中實現共享功能?
- 29. 如何在android中共享應用程序組件?
- 30. 如何在iPhone中通過應用程序共享通行證?