更新位置时出错无法完成操作。 (kCLErrorDomain错误0。)

时间:2016-09-14 09:07:16

标签: ios swift xcode cllocationmanager

我收到此错误:

  

更新位置时出错无法完成操作。   (kCLErrorDomain错误0。)

我的问题是,这个错误几乎每次我运行模拟器时都会显示,并且它一直向我显示模拟器运行时的错误(每次我向viewController提供一个地图时它会向我显示此错误)。最奇怪的是有时这个错误是零,一切都很好。在一个实际的设备上它工作正常,但是当我想尝试一些位置(在模拟器上)时,我必须重启模拟器大约7次,直到它工作。

这是Info.plist:

enter image description here

我的位置是自定义的:

enter image description here

这是我的代码:

func locationManager(manager: CLLocationManager, didFailWithError error: NSError) {
        print("Error while updating location " + error.localizedDescription)

        let alertController = UIAlertController(title: "Sorry!", message: "We were unable to find your location", preferredStyle: UIAlertControllerStyle.Alert)
        let defaultAction = UIAlertAction(title: "OK", style: .Default, handler: nil)
        alertController.addAction(defaultAction)

        presentViewController(alertController, animated: true, completion: nil)
        print("Error...")
    }

我的问题是为什么它有时只能起作用? 谢谢:))

2 个答案:

答案 0 :(得分:1)

请检查一下,让我知道。在模拟器上做,然后尝试。 enter image description here

更新:

我刚试过,当我将位置分配为时,它的工作正常。 工作守则

import CoreLocation
Conform CLLocationManagerDelegate
Create var locationManager:CLLocationManager!
Plist - NSLocationAlwaysUsageDescription add.

override func viewDidLoad() {
    super.viewDidLoad()
    locationManager = CLLocationManager()
    locationManager.delegate = self
    locationManager.desiredAccuracy = kCLLocationAccuracyBest
    locationManager.requestAlwaysAuthorization()
    locationManager.startUpdatingLocation()
}

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    print("locations = \(locations)")
}

func locationManager(manager: CLLocationManager, didFailWithError error: NSError) {
    print("Error while updating location " + error.localizedDescription)

    let alertController = UIAlertController(title: "Sorry!", message: "We were unable to find your location", preferredStyle: UIAlertControllerStyle.Alert)
    let defaultAction = UIAlertAction(title: "OK", style: .Default, handler: nil)
    alertController.addAction(defaultAction)

    presentViewController(alertController, animated: true, completion: nil)
    print("Error...")
}

我正在使用上面的代码正确获取位置,如果我没有放置模拟器位置,则会出现以下错误:

更新位置时出错无法完成操作。 (kCLErrorDomain错误0。)

正确运行时: locations = [< + 37.33233141,-122.03121860> +/- 5.00m(速度0.00 mps /航向-1.00)@ 9/14 / 16,2:34:46 PM巴黎标准时间]

答案 1 :(得分:1)

对于Xcode 11.5,此菜单已移至(模拟器>功能>位置)! 另外,在选择模拟位置后重新安装该应用程序。

enter image description here

要检查的第二个位置是( Xcode>调试>模拟位置)。在模拟器中选择“自定义位置”时。

enter image description here