1

在用户第一次尝试使用当前位置时,map.userslocation 属性的坐标为 0,0。下次我加载包含地图的视图时,总是会找到用户位置。

我在 viewDidLoad 上将 map.showsUserLocation 属性设置为 YES,当地图加载到屏幕上时,蓝点就在那里,但是当我尝试使用 map.userlocation.coorinate 获取坐标时,它们是 0,0。

程序流程为 -(void) viewDidLoad: 1) 将 showUserLocation 设置为 YES 2) 设置计时器以在 6 秒后调用从 map.userLocation 属性中获取用户位置的方法

-(void) getUsersLocation 1) 打印出用户位置

这个过程在我第一次加载视图后效果很好,但是第一次加载视图并且用户必须授予使用其位置的权限,坐标返回 0,0

任何人都知道为什么会发生这种情况以及我该如何解决它?

谢谢!

4

2 回答 2

2

而不是任意等待六秒钟,您应该实施CLLocationManagerDelegate并注意何时

locationManager:didUpdateToLocation:fromLocation:

被调用来为您提供第一次位置更新,这可能需要更多或更少的时间。

于 2009-12-15T06:54:58.123 回答
1

大卫是对的,但我注意到有时我确实会使用 0,0 的位置调用该方法。您应该忽略任何此类调用,除非您认为您的应用程序可能正在非洲西海岸附近的海域使用。

于 2009-12-17T13:34:33.110 回答