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] 吗?

CLLocationManager stopUpdatingLocation 不会停止

iOS崩溃日志