确定一个职位需要一些时间。应该何时何地启动位置管理员?
现在我在加载结果视图(需要位置)之前启动位置更新一个视图。如果用户点击快速我得到0.0坐标。
为了获得正确的时间,应在结果视图之前调用startUpdatingLocation
三个视图。这里的问题是我必须通过这三个视图控制器传递值。
接下来就是我需要在另一个视图中的位置(不是上面提到的视图)。我以为我会创建一个自己的位置监听器类。但是什么时候这个类会被实例化并且坐标(经度,纬度)会通过?协议对我没用,因为只有创建我的位置监听器的类才会得到结果。
我读了一下并提出了以下可能的解决方案:
1)使用通知中心(见this solution)
2)在AppDelegate
在1)我会遇到一个问题,即之前不需要创建需要结果的视图。
2)的实施情况如何?我在app委托中创建了一个位置管理器实例,然后我访问了AppDelegate
的纬度/经度等一些ivars?如果我采用所描述的解决方案here,我每次都必须实施CLLocationManagerDelegate
。这样做有一个班级不是更好吗?
也许你有第三个解决方案?
答案 0 :(得分:1)
第三种解决方案可能是使用单例类,您可以在CLLocationCoordinate2D中存储该位置的纬度和经度。然后,您可以使用以下代码从项目的任何视图中访问存储的坐标
DataController* dataController = [DataController sharedDataController];
CLLocationCoordinate2D currentLocationCoordinate = dataController.coordinate;