这是我的locationManager init方法:
func initLocationManager() {
seenError = false
locationFixAchieved = false
locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestAlwaysAuthorization()
locationManager.startUpdatingLocation()
}
调用此方法后这行
println(self.locationManager.location)
打印无 这是为什么?它在过去对我有用,我只是在我的应用程序中做了一些更改,现在效果不好..
答案 0 :(得分:13)
1)CLLocation location documentation - 如果从未检索到位置数据,则此属性的值为nil。
2)您已为CLLocationManager设置委托。为什么不实施locationManager:didUpdateLocations:并从内部打印最新检索的位置?
3)您使用的是模拟器还是真实的设备?请记住,如果您使用的是模拟器,则可能需要启用模拟位置:
您还可以在以下位置找到Custom Location
选项:
- Simulator -> Debug -> Location -> Custom Location...
答案 1 :(得分:3)
从iOS 8开始,如果您未在Info.plist中为requestAlwaysAuthorization
提供字符串,则会忽略NSLocationAlwaysUsageDescription
。