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

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

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

最佳答案

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

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

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

https://stackoverflow.com/questions/7888896/

相关文章:

objective-c - NSInvalidUnarchiveOperationException

objective-c - 如何判断 UITableView 何时完成 ReloadData?

ios - 在 iOS 6 中以编程方式打开 map 应用

ios - 从另一个应用程序打开设置应用程序

ios - 更改 UIImageView 的图像时淡入淡出/溶解

objective-c - 如何摆脱 'undeclared selector' 警告

ios - UIButton 标题文本颜色

ios - 带有隐藏 UIView 的自动布局?

ios - 获取 UIScrollView 滚动到顶部

objective-c - 仅在 iOS 7 上运行时,Storyboard 原型(prototyp