2

位置的确定需要一些时间。应在何时何地启动位置管理器?

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

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

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

我读了一点,想出了以下可能的解决方案:

1)通知中心的使用(见这个解决方案

2) 在AppDelegate

在 1) 我会遇到需要结果的视图以前不会创建的问题。

2) 的实施会是什么样子?我在应用程序委托中创建了一个位置管理器的实例,然后我访问了一些 ivars,比如AppDelegate? 如果我采用此处描述的解决方案,我将不得不CLLocationManagerDelegate每次都实施。做一门课不是更好吗?

也许您有第三种解决方案?

4

1 回答 1

1

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

DataController* dataController = [DataController sharedDataController];
CLLocationCoordinate2D currentLocationCoordinate = dataController.coordinate;
于 2010-10-11T15:36:47.880 回答