美文网首页
Swift高德地图授权弹框导致applicationDidBec

Swift高德地图授权弹框导致applicationDidBec

作者: 小秀秀耶 | 来源:发表于2018-02-11 15:22 被阅读0次

最近公司事情不多,作为一个开发的小菜鸟,就想着用swift来重写一下整个项目。

项目是需要在首页进行定位,地图使用的高德地图,我们这里有一个需求就是程序进入前台的时候首页界面进行刷新,我就在首页进行对applicationDidBecomeActive的监听,在监听里面刷新界面,但是程序一运行就发现在首页界面定位权限框多次弹出,界面多次进行刷新。

what?我就换成了swift了,逻辑也是一样的,怎么就这样子了?打断点进行调试,发现监听applicationDidBecomeActive的方法被多次调用,从而发现applicationDidBecomeActive的方法走了很多次,嗯。。。尴尬,什么情况?

于是我将程序的生命周期全部进行输出打印,发现在首页界面只要定位权限框一弹出程序就会进入applicationWillResignActive状态,弹框消失就进入applicationDidBecomeActive,多次权限框弹出,导致多次进入applicationDidBecomeActive,从而导致监听方法被多次调用,界面多次刷新。

我又运行OC写的工程,发现APP虽然在首页使用定位功能,但是权限弹出框会在引导页面弹出,此时首页还没有注册监听,所以不会多次调用监听方法。

为什么swift的工程在首页弹出定位框,OC的工程在引导页面弹出输入框呢?尴尬。。。还没有找到为什么。既然知道是弹出框的问题,我就在APPdelegate里面调用了封装的定位单例,权限框就在引导页弹出了,首页的监听还没有注册,不会调用监听方法,从而解决了权限框多次弹出导致页面的多次刷新问题。

相关文章

网友评论

      本文标题:Swift高德地图授权弹框导致applicationDidBec

      本文链接:https://www.haomeiwen.com/subject/ztoktftx.html