最近发现一个问题,自iOS 10.0以后,项目中老是出现有关定位管理者的日志信息,说定位管理者最好放在主线程;在实际开发中,当在子线程中创建定位管理者,有可能收不到回调信息
<>强提示信息如下:强>
创建一个位置管理器(0 x7fbafac12560) alt=" iOS中定位(位置管理器)出现日志日志的解决办法">比较好的回答:
但我尝试了,也无果。
没办法,有时间了就去尝试。
最终解决方法是在应用程序委托内关于地图或者导航注册信息那一块。
这是我导航注册代码:
//开启导航服务 [BNCoreServices_Instance initServices: @“xxxxxxxxxxxx”); [BNCoreServices_Instance startServicesAsyn: ^ { NSLog(@“导航开启成功”); }失败:^ { NSLog(@“导航开启失败”); });我在开启导航服务的时候,使用了异步开启,然后主线程回调开启的结果。
进入百度导航API发现:/* * *启动服务,同步方法,会导致阻塞 * @param SoundDelete[在]传入遵守BNSoundManagerProtocol的实例 * @return启动结果 */?BOOL) startServices;/* * *启动服务,异步方法 * * @param成功启动成功后回调成功 * @param失败启动失败后回调失败 */- (void) startServicesAsyn:无效(^)(空白))成功失败:(空白(^)(空白))失败;<强>有两个方法开启导航服务:强>
,,,,——一个是在主线程同步开启,说会导致阻塞;
,,,,——另外一个是异步开启,将结果回调到主线程。
之所以会打印上述日志,是因为我使用了异步开启导航服务。
<>强如果我使用同步开启强>
[BNCoreServices_Instance startServices];就不会打印出有关定位的日志信息。
抱歉,我有强迫症,不喜欢日志框有打印,所以我选择了同步开启。
如果你觉得异步加载好,不会阻塞线程,可以无视打印日志的影响,你可以使用异步开启。
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
iOS中定位(位置管理器)出现日志日志的解决办法