我正在使用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)")
}
这只是因为我在模拟器上吗?它会在真正的设备上运行吗?有没有办法让它在模拟器上工作?谢谢!