【发布时间】:2016-04-10 17:57:37
【问题描述】:
CLLocationManager requestAlwaysAuthorization 弹出窗口立即显示和隐藏,让用户没有时间按下允许按钮。这是我为位置管理编写的一个类:
import UIKit
class TMLocationManager: NSObject, CLLocationManagerDelegate {
var locationManager: CLLocationManager?
override init() {
super.init()
}
static func startLocationManager() {
let manager = TMLocationManager()
manager.getPermission()
}
private func getPermission () {
locationManager = CLLocationManager()
locationManager!.desiredAccuracy = kCLLocationAccuracyBestForNavigation
locationManager!.delegate = TMLocationManager.init()
switch CLLocationManager.authorizationStatus() {
case .Denied, .Restricted:
return
case .NotDetermined:
locationManager!.requestAlwaysAuthorization()
break
case .AuthorizedAlways, .AuthorizedWhenInUse:
locationManager!.startUpdatingLocation()
default:
break
}
}
}
在我的代码中我只写TMLocationManager.startLocationManager()
【问题讨论】:
-
你也需要保留
manager -
在您的 startLocationManager 函数中,您正在创建一个局部变量,该变量将在函数退出时立即超出范围。
-
是的,这对 @max_ 和高锰酸钾有帮助,谢谢
标签: ios swift cllocationmanager