requestalwaysauthorisation()突然消失

时间:2019-01-12 10:44:27

标签: ios swift

代码A

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时,请求对话框突然像闪光一样消失了,为什么会这样?

1 个答案:

答案 0 :(得分:2)

对于代码B,您的CLLocationManager实例保存在局部变量中。 viewDidLoad退出后将立即释放,因为没有对实例的强引用。这将导致对话框消失。

在您的第一个代码块中,对象属性将保留一个强引用,直到对象本身被释放。