didUpdateToLocation不会立即被调用

San*_*ose 1 iphone cllocationmanager

我在用

startMonitoringSignificantLocationChanges

得到(lat,lon)值.我的问题是

  • (void)locationManager:(CLLocationManager*)manager didUpdateToLocation:(CLLocation*)newLocation fromLocation:(CLLocation*)oldLocation

[locationMangerObject startMonitoringSignificantLocationChanges];遇到后,方法不会被立即调用.内部didUpdateToLocation方法只保留两个全局双变量来保存纬度和经度,这些变量将根据从didUpdateToLocation方法获得的坐标设置.这些值被传递给web服务,因为didUpdateToLocation只被调用某些延迟,在这些延迟之间,(lat,lon)的参数将零作为其值并传递给服务,从而导致意外响应.

怎么做

  • (void)locationManager:(CLLocationManager*)manager didUpdateToLocation:(CLLocation*)newLocation fromLocation:(CLLocation*)oldLocation

在`[locationMangerObject startMonitoringSignificantLocationChanges]之后立即调用的方法; 遇到了.

请有人建议我解决这个问题的解决方案.

提前致谢.

jla*_*lar 5

也许您应该考虑使用startUpdatingLocation方法而不是startMonitoringSignificantLocationChanges.来自iOS文档:

startUpdatingLocation

此方法立即返回.调用此方法会导致位置管理器获取初始位置修复(可能需要几秒钟),并通过调用其locationManager:didUpdateToLocation:fromLocation:method来通知您的委托.