首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么不调用locationManager (:didUpdateLocations)

locationManager是iOS中用于获取设备位置信息的类,通过调用它的didUpdateLocations方法可以获取到设备的经纬度等位置信息。

不调用locationManager的didUpdateLocations方法可能有以下几个原因:

  1. 不需要获取设备的位置信息:如果应用程序不需要获取设备的位置信息,就不需要调用locationManager的didUpdateLocations方法。例如,一个计算器应用程序不需要获取设备的位置信息,因此不需要调用该方法。
  2. 没有获取位置信息的权限:在iOS中,应用程序需要用户授权才能获取设备的位置信息。如果用户没有授权应用程序获取位置信息,那么调用locationManager的didUpdateLocations方法也无法获取到位置信息。
  3. 没有实现相关的委托方法:要使用locationManager的didUpdateLocations方法,需要实现CLLocationManagerDelegate协议,并将其设置为locationManager的委托对象。如果没有实现相关的委托方法,调用didUpdateLocations方法也不会触发任何操作。

总结起来,不调用locationManager的didUpdateLocations方法可能是因为应用程序不需要获取设备的位置信息,用户没有授权获取位置信息,或者没有实现相关的委托方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • iOS-CoreLocation框架的定位和逆地址解析详解

    = kCLLocationAccuracyBest // 设置定位距离过滤参数,单位是米(当本次定位和上次定位之间的距离大于或等于这个值时,才会调用代理方法) // 如果设为kCLDistanceFilterNone..., didUpdateLocations locations: [CLLocation]) { // 获取最新位置的坐标 guard let last = locations.last...else { return } print("当前坐标:" + "\(last)") // 获取到位置后,取消30s的定位超时调用 NSObject.cancelPreviousPerformRequests...地图坐标系的介绍可以看 地图坐标系介绍 对于reverseGeocodeLocation方法,在iOS9中,必须传入地球坐标系(GPS),而在其他iOS系统中,必须传入火星坐标系(GCJ) 经过测试,我们直接从didUpdateLocations...但如果我们自己创建一个CLLocation就会有问题,举例子来说明: func reverseGeocodeLocation(location:CLLocation){ 假设lacation参数是通过didUpdateLocations

    1.2K20

    iOS-世界那么大,CoreLocation带你去看看

    代理方法didUpdateLocations会被持续调用,参数manager位置管理者 locations表示位置数组,里面按照时间先后顺序存储CLLocation对象,获取最后一个位置信息[locations...-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations...: 位置管理者 // error : 错误信息 } // 当用户定位授权状态发生变化时调用 -(void)locationManager:(CLLocationManager *...,持续调用 - (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading {...headingAccuracy; // 返回方向的时间 @property(readonly, nonatomic, copy) NSDate *timestamp; 注意:当获取朝向的时候不需要向用户请求授权,因为设备方向涉及到用户隐私

    1.4K90

    iOS地图开发1-定位(swift)

    概述 关于ios中地图定位相关的开发可以分两块,一块为调用ios的定位获取GPS坐标以及坐标–>地址,地址–>坐标,另一块就是调用苹果对地图的封装,也可以调用高德或者百度地图的SDK,不过引用将近10M...的库,但是功能上要比直接调用系统封装的要强大的多,所以我建议app里基本上只要求定位与地图上显示的,就直接用原生的封装,自定义较多的,比如设置定位点覆盖物的图标就引用第三方的 坐标系 因为gps,高德,...).doubleValue>8.0){ locationManager.requestAlwaysAuthorization() } (4)实现代理的两个方法 func locationManager..., didUpdateLocations locations: [AnyObject]!)...解析地址是传入的坐标不是GPS定位的坐标,而是火星坐标 ios8必须在配置文件上配置定位提示语的字段,info.plist中添加NSLocationAlwaysUsageDescription,否则是不会进行定位的,也不会调用代理方法

    1.6K10

    地图相关 CoreLocation框架介绍请求用户授权方法CLLocationManager 属性和方法CLLocation 位置对象介绍三、地理编码的实现

    Local Mobile(索罗门) 移动社交 4.天朝的经纬度范围:纬度范围:N 3°51′ ~ N 53°33′ 经度范围:E 73°33′ ~ E 135°05′ ---- 1、如果定位方法走原因...设置界面 plist添加的用户提示信息可以写值,表示空白提示,一般写上需要定位的原因,提高用户打开的几率 1....desiredAccuracy 属性 - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray...= self; 4、调用开始定位方法 [self.locationManager startUpdatingLocation]; 5、实现代理方法拿到数据,当用户更新位置的时候调用此方法,频繁调用..., 非常耗电 - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray

    1.8K120

    iOS的MVC框架之模型层的构建

    我们发现这个属性被定义为了只读,这里为什么要定义为只读呢?原因就是因为我们的位置管理器类的职责就是负责管理当前的位置,同时内部会实时的更新这个当前的位置。...(ios(6.0), macos(10.9)); @end 可以看出当位置管理器对象更新了当前的位置后就会调用delegate属性所指对象的didUpdateLocations方法来通知对应的使用观察者...建议在一个方法中出现2个block回调:一个正确的和一个失败的。...而且这种机制由系统来完成,缺点就是他只是对属性的变化进行观察,而不能对某些异步方法调用进行通知处理。而如果我们想要正真的实现观察者模式而局限于属性呢?...既然通知这种机制那么好,那么为什么主动推荐呢?答案是这种机制太过于松散了。虽然他解决了多观察者的问题,但是过于松散的结果是给使用者带来了一定的学习成本。

    91220

    iOS-定位

    则可弹窗申请始终允许,如下图;(感觉不是太友好,建议使用) -与iOS12.版本相比不同点*** -使用应用期间的定位权限增加了允许一次选项; -不能直接申请后台定位权限,需要用户先选择应用使用期间的定位权限后...测试期间使用Xcode12 beta1到beta4,直接使用info.plist的Property List添加NSLocationDefaultAccuracyReduced字段只能是string,所以会造成起效的问题...:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations; -locations是按时间排序的CLLocation对象数组...(void)startLocation{ //self.locationManager = [[CLLocationManager alloc]init]; //self.locationManager.allowsBackgroundLocationUpdates...:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { CLLocation

    1.3K20
    领券