【问题标题】:stopUpdatingLocation is not working in iOS 7stopUpdatingLocation 在 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的方法是否真的被调用过

标签: iphone ios objective-c ipad ios7


【解决方案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]
    猜你喜欢
    • 2013-10-19
    • 2013-09-16
    • 2013-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多