gpt4 book ai didi

swift - 操作无法完成。 (kCLErrorDomain 错误 1。)

转载 作者:可可西里 更新时间:2023-11-01 01:06:10 27 4
gpt4 key购买 nike

我和这个问题的标题有同样的问题:

The operation couldn’t be completed. (kCLErrorDomain error 1.)

此错误是当用户按下不允许本地化访问权限时。这是我的代码:

 @IBAction func getLocation(sender: UIButton)
{

// i servizi di localizzazione sono abilitati?
if (CLLocationManager.locationServicesEnabled())
{
// abbiamo l'autorizzazione ad accedere ai servizi di localizzazione?
switch CLLocationManager.authorizationStatus(){
case .Denied:
// NO
displayAlertWithTitle("Denied", message: "Location services are not allowed for this app")
case .NotDetermined:
// NON SAPPIAMO, DOBBIAMO CHIEDERE
self.locationManager = CLLocationManager()
if (locationManager != nil)
{
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
}
case .Restricted:
// SONO STATE APPLICATE DELLE RESTRIZIONI, NON ABBIAMO ACCESSO AI SERVIZI DI LOCALIZZAZIONE
displayAlertWithTitle("Restricted", message: "Location services are not allowed for this app")
default:
println("Authorized / or non Determined")
self.locationManager = CLLocationManager()
if (locationManager != nil)
{
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
}
}
}
// i servizi di localizzazione non sono abilitati -- proponi all'utente di abilitarli...
else
{
println("Location services are not enabled")
}
}

// funzione del CoreLocation richiamata dalla funzione getLocation sovrastante che setta la visuale in base alla localizzaizone dell'utente
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {

self.mapView.showsUserLocation = true
self.locationManager.stopUpdatingLocation()

// aggiorno le coordinate dell'utente
self.posizioneUtente = manager.location.coordinate
println("Posizione utente aggiornata (lat: \(posizioneUtente.latitude) long: \(posizioneUtente.longitude))")

// setto la camera sulla posizione dell'utente
var camera = MKMapCamera(lookingAtCenterCoordinate: posizioneUtente, fromEyeCoordinate: posizioneUtente, eyeAltitude: 500)
// utilizzo un'animazione più lenta
UIView.animateWithDuration(1.8, animations:{
self.mapView.camera = camera
})

}

// funzione del CoreLocation
func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!) {
println("Error: \(error.localizedDescription)")
}

// funzione del CoreLocation
func locationManager(manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
print("The authorization status of location " + "services is changed to: ")

switch CLLocationManager.authorizationStatus(){
case .Denied:
println("Denied")
case .NotDetermined:
println("Not determined")
case .Restricted:
println("Restricted")
default:
println("Authorized")
}
}

// funzione che mostra a schermo un'alert
func displayAlertWithTitle(title: String, message: String)
{
let controller = UIAlertController(title: title, message: message, preferredStyle: .Alert)
controller.addAction(UIAlertAction(title: "OK", style: .Default, handler: nil))
presentViewController(controller, animated: true, completion: nil)
}

我的错误在哪里?

最佳答案

kCLErrorDomain 代码 1 在用户拒绝您的应用访问定位服务时发生。

来自 CLError.h:

    kCLErrorDenied,  // Access to location or ranging has been denied by the user

您应该通过访问“设置”>“隐私”>“定位服务”>“您的应用”提示用户手动授予应用访问权限。

关于swift - 操作无法完成。 (kCLErrorDomain 错误 1。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29350245/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com