iOS对话框会在半秒后提示并消失:
let locationManager = CLLocationManager()
switch CLLocationManager.authorizationStatus() {
case .authorizedWhenInUse:
print("In Use \(locationManager.location?.description)")
case .denied, .restricted:
print("denied")
case .notDetermined:
locationManager.requestWhenInUseAuthorization()
case .authorizedAlways:
print("always \(locationManager.location)")
}
我不知道这是否相关,但我正在使用SWReavealViewController。 Xcode9,为iOS 8.0编译,包括模拟器和真实设备
答案 0 :(得分:7)
您的locationManager
变量不会超出其定义范围(代码片段所在的函数),因此在用户可以响应对话框之前将其解除分配。
如果将let locationManager = CLLocationManager()
移动到类变量,它应该保持不变。
答案 1 :(得分:1)
将let locationManager = CLLocationManager()
插入您的ViewController
类的开头。 (在viewDidLoad()
函数之外)。希望对您有帮助。
class ViewController: UIViewController {
let locationManager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
}
}