我的應用程序監視用戶位置,包括一些背景位置監視。在我的AppDelegate中保留一個CLLocationManager是否是一種好習慣?
我在我的App Delegate中有一個位置管理器,主要用於初始啓動位置以及後臺更新。然後,我在視圖控制器(地圖)內部安排了另一位經理,以獲取更具體的事件和快速參考。
我想知道,如果它是重構爲一個實例就是一個很好的做法,保持應用程序委託,並使用引用它整個應用程序:
self.appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[self.appDelegate.locationManager startUpdatingLocation];
有很多方法可以做到,但應用程序委託是合理的。或者,你也可以在自己的類中擁有一個單例 - 一個通過屬性公開的靜態CLLocationManager對象。 – EricS
在MVC之後,您的視圖控制器應該...控制您的視圖。應該*告訴*要顯示什麼數據,其邏輯應該與用戶如何看待數據以及如何與數據交互有關。它不應該負責從Web服務器或CLLocationManager獲取數據。因此,除非您的應用程序非常簡單,否則CLLoctionManager既不屬於您的應用程序委託也不屬於您的視圖控制器。 –