代码
let locobject = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
locobject.delegate = self
locobject.requestWhenInUseAuthorization()
locobject.startUpdatingLocation()
}
代码B
override func viewDidLoad() {
super.viewDidLoad()
let locobject = CLLocationManager()
locobject.delegate = self
locobject.requestWhenInUseAuthorization()
locobject.startUpdatingLocation()
}
代码A正常运行,但是当我尝试运行代码B时,请求对话框突然消失,就像是闪烁一样,为什么会这样?
最佳答案
对于代码B,您的CLLocationManager
实例保存在局部变量中。一旦viewDidLoad
退出,它将被释放,因为没有对实例的强引用。这将导致对话框消失。
在您的第一个代码块中,对象属性将保留一个强引用,直到对象本身被释放。
关于ios - requestalwaysauthorisation()突然消失,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54158815/