我的应用获取用户的位置,获取坐标,并提供往返目的地或起点的距离。所有这些可能的目的地都显示在表格 View 中,因此我在填充表格的同时获取用户坐标。唯一的问题是,询问用户位置的警报 View 出现然后消失得如此之快以至于无法点击它!
有没有办法在应用首次加载时手动显示此警报?我尝试在应用加载时获取用户位置以尝试强制显示警报,但这没有奏效。
最佳答案
虽然难以追踪,但解决方案非常简单。
经过反复试验,我发现当您第一次尝试访问应用程序中的任何位置服务时会弹出位置访问对话框,如果 CLLocationManager
对象在用户响应对话框之前被释放。
我在 viewDidLoad
方法中创建了一个 CLLocationManager
实例。由于这是该方法的本地实例,因此该实例在方法执行完成后由 ARC 释放。一旦实例被释放,对话框就消失了。解决方案相当简单。将 CLLocationManager
实例从方法级变量更改为类级实例变量。现在 CLLocationManager
实例只有在类被卸载后才会被释放。
关于objective-c - 当前位置权限对话框消失得太快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7888896/