尽管有Plist键,但CLLocation管理器委托不会被调用

时间:2015-09-21 18:24:32

标签: swift cllocationmanager

我正在使用swift编写应用程序,需要访问用户的位置。我在类的顶部添加了CLLocationManagerDelegate并将委托设置为self。我还在plist中添加了这些键,因为我在iOS 8或更高版本中读取它是必要的......

NSLocationAlwaysUsageDescription ---我需要位置

NSLocationWhenInUseUsageDescription ---我需要位置

隐私 - 位置使用说明---我需要位置

它调用下面的第一个方法没有问题(从视图加载调用),其中委托和请求总是授权,但是它无法调用第二个(委托)方法。

    func determineCurrentUserLocation() {

    locationManager.delegate = self
    locationManager.requestAlwaysAuthorization()
    locationManager.desiredAccuracy = kCLLocationAccuracyBest
    locationManager.startUpdatingLocation()

}

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

    location = (locations[0] as? CLLocation)!
    let long = location.coordinate.longitude
    let lat = location.coordinate.latitude

    longString = String(format: "@%", long)
    latString = String(format: "@%", lat)

    println("\(long, lat)")

}

这只是因为我在模拟器上吗?它会在真正的设备上运行吗?有没有办法让它在模拟器上工作?谢谢!

0 个答案:

没有答案