在展开期权价值时,ios SWIFT发现零。

时间:2016-01-12 10:59:05

标签: ios swift mapkit core-location

在做了一些研究并在堆栈上询问其他问题后,我似乎无法弄清楚问题。但我走得很远。

我是Stack的新手,所以如果我需要提供更多信息,请告诉我。

错误发生在

self.mapView.showsUserLocation = true

在编译器中说

  

致命错误:在打开选项值时意外发现nil   IIDB

如果我删除该行,则错误会出现在另一个.mapView上。线。

当我移动出现错误的行时,将其放在:

下面
 func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {

该应用程序打开,一切正常,但它不显示位置,但我能够运行应用程序而不会出现任何错误。

感谢您的时间。

如果有人需要,这是我的代码。

import UIKit
import Parse
import CoreLocation
import MapKit  


class ViewController: UIViewController, CLLocationManagerDelegate, MKMapViewDelegate {

    @IBOutlet weak var mapView: MKMapView!

    let locationManager = CLLocationManager()




    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

    self.locationManager.delegate = self

    self.locationManager.desiredAccuracy = kCLLocationAccuracyBest

    self.locationManager.requestWhenInUseAuthorization()

    self.locationManager.startUpdatingLocation()

    self.mapView.showsUserLocation = true

    }






    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


    // MARK: - Location Delegate Methods

    func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
       let location = locations.last

        let center = CLLocationCoordinate2D(latitude: location!.coordinate.latitude, longitude: location!.coordinate.longitude)

        let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 1, longitudeDelta: 1))

        self.mapView.setRegion(region, animated: true)

        self.locationManager.stopUpdatingLocation()
    }

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

}

2 个答案:

答案 0 :(得分:2)

它将在属性上返回找到的nil错误的唯一原因是因为该属性尚未实例化。鉴于您正在使用IBOutlet,我想您没有将该属性挂钩到故事板中的地图视图。

有关详细信息,请参阅Swift: "mapView.showUserLocation = true" returns "fatal error: unexpectedly found nil while unwrapping an Optional value (lldb) "

答案 1 :(得分:0)

尝试添加locationManager.requestLocation()而不是self.mapView.showsUserLocation = true

检查您的info.plist是否包含“隐私 - 位置使用说明”