CLLocationManager requestAlwaysAuthorization弹出窗口立即显示和隐藏

时间:2016-04-10 17:57:38

标签: ios swift cllocationmanager

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()

1 个答案:

答案 0 :(得分:0)

结合我的评论,您需要确保manager变量在发布时保留,并在startLocationManager方法执行完毕后解除警报。