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()
答案 0 :(得分:0)
结合我的评论,您需要确保manager
变量在发布时保留,并在startLocationManager
方法执行完毕后解除警报。