如何保持位置服务请求提醒框保持显示

时间:2017-01-30 17:13:51

标签: ios swift2

我对UITableViewController有一些奇怪的问题。我在viewDidLoad方法中请求位置服务authroization,我可以看到alertbox出现。但是,此警报框会保持几秒钟,然后消失。为什么会这样?

 override func viewDidLoad() {
   let locationManager = CLLocationManager()
   locationManager.requestAlwaysAuthorization() 
 }

我在UIViewController中尝试了这个代码,它加载了这个UITableViewController并遇到了不同的问题。这次,仅显示推送通知服务请求警报框,并且完全忽略位置服务请求。我猜测是因为推送通知服务请求不是来自我,而是来自ios,我的位置服务请求被ios通知请求覆盖了。我的假设是正确的还是对这种行为有任何探索?

1 个答案:

答案 0 :(得分:1)

您的位置管理器已不存在,因为它是一个局部变量。使它成为一个持久的属性:

let locationManager = CLLocationManager()
override func viewDidLoad() {
    // ...
}

此外,我不确定在viewDidLoad中执行此操作是否是个好主意。视图尚未出现在界面中;事实上,可能还有没有界面。

但是你的代码还有很多其他问题。您可能已经拥有授权,或授权可能已被拒绝,在这种情况下,请求没有任何意义。一般而言,授权请求比您的简单代码更精细。