objective-c - 当前位置权限对话框消失得太快

标签 objective-c ios core-location

我的应用获取用户的位置,获取坐标,并提供往返目的地或起点的距离。所有这些可能的目的地都显示在表格 View 中,因此我在填充表格的同时获取用户坐标。唯一的问题是,询问用户位置的警报 View 出现然后消失得如此之快以至于无法点击它!

有没有办法在应用首次加载时手动显示此警报?我尝试在应用加载时获取用户位置以尝试强制显示警报,但这没有奏效。

最佳答案

虽然难以追踪,但解决方案非常简单。

经过反复试验,我发现当您第一次尝试访问应用程序中的任何位置服务时会弹出位置访问对话框,如果 CLLocationManager 对象在用户响应对话框之前被释放。

我在 viewDidLoad 方法中创建了一个 CLLocationManager 实例。由于这是该方法的本地实例,因此该实例在方法执行完成后由 ARC 释放。一旦实例被释放,对话框就消失了。解决方案相当简单。将 CLLocationManager 实例从方法级变量更改为类级实例变量。现在 CLLocationManager 实例只有在类被卸载后才会被释放。

关于objective-c - 当前位置权限对话框消失得太快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7888896/

相关文章:

ios - Mobile Safari - 输入插入符不随溢出滚动一起滚动 : touch

ios - 当点击其他栏按钮时弹出 Controller 不会关闭但当点击其他按钮(或外部弹出窗口)时关闭

ios定位服务后台问题

swift - 如何在继续之前等待 requestLocation?

iphone - IOS位置发现检测

iphone - CATransform3DMakeRotation 的奇怪视角

objective-c - NSSpellchecker 和 UITextChecker 之间的区别

ios - UIImageview+AFNetworking淡入,图片缓存时也是

ios - 如何根据其标签值属性在uiimageview上添加图像。?

ios - 如何使用 iOS 创建一个大的红色 UIButton?