提问者:小点点

我无法添加LocationManager.RequestWhenInUseAuthorization()


我无法添加LocationManager.RequestWhenInUseAuthorization()

我所期望的:弹出请求位置许可给用户什么heppend:nothing show

设置:iphone中的位置设置:从不

plist:

locationalwayswheninuseusagedescription

LocationalWaysusageDescription

位置WheninUseUsageDescription

import Foundation
import UIKit
import CoreLocation

class NoobNoobVC: BaseVC, CLLocationManagerDelegate {
    
    var locationManager: CLLocationManager!

    
    override func viewDidLoad() {
        super.viewDidLoad()
        locationManager = CLLocationManager()
        locationManager.delegate = self
        locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
        locationManager.distanceFilter = 5
        locationManager.requestWhenInUseAuthorization()
        if CLLocationManager.locationServicesEnabled() {
            //locationManager.startUpdatingHeading()
        }
    }
    
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        locationManager.requestWhenInUseAuthorization()

    }
}

共1个答案

匿名用户

文件显示:

您可以在未确定当前授权状态时调用RequestWhenInUseAuthorization()(CLAuthorizationStatus.NotDetermined)。

(&P;

如果初始授权状态不是CLAuthorizationStatus.NotDetermined,则此方法不执行任何操作,并且不调用LocationManager(_:DidChangeAuthorization:)方法。

您必须使用authorizationstatus()来检查授权状态,然后采取适当的操作,例如-通知用户哪里出了问题,。。。以及可以对此做些什么。 只有当.NotDetermined时,才可以调用RequestWhenInUseAuthorization()。 这个类函数被标记为deprecated,如果您的目标是iOS>=14.0,那么应该使用实例变量。