何时/何处startUpdatingLocation?

时间:2010-10-11 15:24:16

标签: iphone cocoa-touch timing cllocationmanager core-location

确定一个职位需要一些时间。应该何时何地启动位置管理员?

现在我在加载结果视图(需要位置)之前启动位置更新一个视图。如果用户点击快速我得到0.0坐标。

为了获得正确的时间,应在结果视图之前调用startUpdatingLocation三个视图。这里的问题是我必须通过这三个视图控制器传递值。

接下来就是我需要在另一个视图中的位置(不是上面提到的视图)。我以为我会创建一个自己的位置监听器类。但是什么时候这个类会被实例化并且坐标(经度,纬度)会通过?协议对我没用,因为只有创建我的位置监听器的类才会得到结果。

我读了一下并提出了以下可能的解决方案:

1)使用通知中心(见this solution

2)在AppDelegate

中创建我的位置管理器的属性

在1)我会遇到一个问题,即之前不需要创建需要结果的视图。

2)的实施情况如何?我在app委托中创建了一个位置管理器实例,然后我访问了AppDelegate的纬度/经度等一些ivars?如果我采用所描述的解决方案here,我每次都必须实施CLLocationManagerDelegate。这样做有一个班级不是更好吗?

也许你有第三个解决方案?

1 个答案:

答案 0 :(得分:1)

第三种解决方案可能是使用单例类,您可以在CLLocationCoordinate2D中存储该位置的纬度和经度。然后,您可以使用以下代码从项目的任何视图中访问存储的坐标

DataController* dataController = [DataController sharedDataController];
CLLocationCoordinate2D currentLocationCoordinate = dataController.coordinate;