时间:2021-05-20
前言
最近发现一个问题,自iOS 10.0以后,项目中老是出现有关定位管理者的日志信息,说定位管理者最好放在主线程;在实际开发中,当在子线程中创建定位管理者,有可能收不到回调信息
提示信息如下:
中文翻译为:一个定位管理者创建在子线程,而不是主线程.在开发中,要确保一个定位管理者所在的线程要在运行循环(Run loop)中.在实际开发中,当在子线程中创建定位管理者,有可能收不到回调信息.
解决过程
我找了好久,尝试了好多方法,都无果: 这是在stackoverflow中搜到的解决方法
作者的问题:
比较好的回答:
但我尝试了,也无果.
没办法,有时间了就去尝试.
解决方法:
最终解决方法是在App Delegate 内关于地图或者导航注册信息那一块.
这是我导航注册代码:
//开启导航服务 [BNCoreServices_Instance initServices:@"xxxxxxxxxxxx"]; [BNCoreServices_Instance startServicesAsyn:^{ NSLog(@"导航开启成功"); } fail:^{ NSLog(@"导航开启失败"); }];我在开启导航服务的时候,使用了异步开启,然后主线程回调开启的结果.
进入百度导航API发现:
有两个方法开启导航服务:
- 一个是在主线程同步开启,说会导致阻塞;
- 另外一个是异步开启,将结果回调到主线程.
之所以会打印上述日志,是因为我使用了异步开启导航服务.
如果我使用同步开启
[BNCoreServices_Instance startServices];就不会打印出有关定位的日志信息.
抱歉,我有强迫症,不喜欢日志框有打印,所以我选择了同步开启.
如果你觉得异步加载好,不会阻塞线程,可以无视打印日志的影响,你可以使用异步开启.
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
nginx配置引发的403问题解决办法一、问题:在curlnginx配置的本地域名时出现403nginx_error.log日志如下:二、疑问1、配置如下:发现
本文章向朋友们介绍开启bin-log日志mysql报错:ThisfunctionhasnoneofDETERMINISTIC,NOSQL解决办法,创建存储过程时
用window.location.reload()方法刷新页面时,有时浏览期会出现一个这样的弹出框,解决办法是:一:document.location.href
AndroidGradleBuildError:Somefilecrunchingfailed,seelogsfordetails解决办法错误日志:Error:
前言安卓开发经常遇到那种日志太长或滚动得太快,我们直接的解决办法就是进行日志输出长度增大和添加日志过滤器,个人推荐用adblogcat处理更加方便灵活。解决办法