stopUpdatingLocation 在 iOS 7 中不起作用
Posted
技术标签:
【中文标题】stopUpdatingLocation 在 iOS 7 中不起作用【英文标题】:stopUpdatingLocation is not working in iOS 7 【发布时间】:2013-09-25 16:35:10 【问题描述】:我开发了支持 ios 5 和 iOS 6 的 iPhone 和 iPad 应用程序
在该应用程序中,我使用 CLLocationManager.
获取了用户当前位置
当我想停止更新接收 GPS 坐标时。我打电话给stopUpdatingLocation
停止调用didUpdateToLocation
方法的方法。它在 iOS 5 和 6 上完全正常,但不幸的是它不适用于 iOS 7。
似乎stopUpdatingLocation
方法不起作用。任何特殊原因。 ??
我有一个变量来监控didUpdateToLocation
方法的生命周期并停止执行它。
【问题讨论】:
一些代码怎么样?它在我的 iOS 7 中运行良好 仔细检查你执行stopUpdatingLocation
的方法是否真的被调用过
【参考方案1】:
一件事可能是,
您在地图上移动的当前位置蓝点是因为您将 MKMapView 的 showsUserLocation 设置为 YES。它会一直跟踪,直到您将其设置为 NO。
第二件事,
您可能正在设置以下内容以停止调用该方法
locationManager = nil;
这不是停止监控,而是它做了什么,不是指位置管理器,所以现在不可能停止监控。
改为添加下面的代码然后看看会发生什么
[locationManager stopUpdatingLocation];
locationManager=nil;
希望对你有帮助..
【讨论】:
【参考方案2】:@tdevoy - 这是示例
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
CLLocation *location = [locations lastObject];
latitude = location.coordinate.latitude;
longtitude = location.coordinate.longitude;
//stops updating current user location update
[locationManager stopUpdatingLocation];
【讨论】:
首先,这不是答案 - 最好编辑您的原始帖子。其次,这段代码永远不会编译。最后一行应该是:[manager stopUpdatingLocation]以上是关于stopUpdatingLocation 在 iOS 7 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
即使我调用 stopUpdatingLocation 仍然显示位置管理器图标
CoreLocation:LocationManager.stopUpdatingLocation() 不工作
locationManager requestLocationUpdates 和 stopUpdatingLocation 之间有啥区别?
我应该在 locationManager:didFailWithError: 中发送 [locationManager stopUpdatingLocation] 吗?