CLLocationManager.location是nil

时间:2014-11-23 19:40:00

标签: ios swift location cllocationmanager

这是我的locationManager init方法:

func initLocationManager() {
        seenError = false
        locationFixAchieved = false
        locationManager = CLLocationManager()
        locationManager.delegate = self
        locationManager.desiredAccuracy = kCLLocationAccuracyBest
        locationManager.requestAlwaysAuthorization()
        locationManager.startUpdatingLocation()     
}

调用此方法后这行

println(self.locationManager.location)

打印无 这是为什么?它在过去对我有用,我只是在我的应用程序中做了一些更改,现在效果不好..

2 个答案:

答案 0 :(得分:13)

1)CLLocation location documentation - 如果从未检索到位置数据,则此属性的值为nil。

2)您已为CLLocationManager设置委托。为什么不实施locationManager:didUpdateLocations:并从内部打印最新检索的位置?

3)您使用的是模拟器还是真实的设备?请记住,如果您使用的是模拟器,则可能需要启用模拟位置:

Xcode location Dropdown

您还可以在以下位置找到Custom Location选项: - Simulator -> Debug -> Location -> Custom Location...

答案 1 :(得分:3)

从iOS 8开始,如果您未在Info.plist中为requestAlwaysAuthorization提供字符串,则会忽略NSLocationAlwaysUsageDescription

Link to documentation