CLLocationManager致命错误:在展开可选值Swift时意外发现nil

Fab*_*bio 3 mkmapview cllocationmanager ios swift

我有一个问题,因为我的应用程序崩溃,当我试图获得位置用户并在我的.plist中获得我的代码的权限.

import UIKit
import MapKit
import CoreLocation

class mapClass : UIViewController,MKMapViewDelegate,CLLocationManagerDelegate{

    var location4 = CLLocation()
    var lm  = CLLocationManager ()

    @IBOutlet  var propMapa: MKMapView!

    lm.delegate=self
    lm.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
    lm.distanceFilter = kCLDistanceFilterNone
    lm.startUpdatingLocation()

    println("\(lm.location)") <---- nil

   location4 = lm.location <---- crash

}
Run Code Online (Sandbox Code Playgroud)

日志:致命错误:在展开Optional值时意外发现nil

zis*_*oft 6

在检测到位置更改时调用lm.startUpdatingLocation()位置管理器调用后didUpdateLocations(),您需要实现CLLocationManager::didUpdateLocations以检索位置:

import UIKit
import MapKit
import CoreLocation

class mapClass : UIViewController,MKMapViewDelegate,CLLocationManagerDelegate{

    var location4 = CLLocation()
    var lm  = CLLocationManager ()

    @IBOutlet  var propMapa: MKMapView!

    ...

    lm.delegate=self
    lm.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
    lm.distanceFilter = kCLDistanceFilterNone
    lm.startUpdatingLocation()
}

func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {

    let currentLocation = locations.last as CLLocation
    println(currentLocation)
    ...
}
Run Code Online (Sandbox Code Playgroud)