获得地址位置的流程及遇到的问题
记忆一下:
1.引用包:import CoreLocation
2.定义常量let locationManager :CLLocationManager = CLLocationManager();
3.设置精确度locationManager.desiredAccuracy = kCLLocationAccuracyBest
4.iOS8要判断,如果是iOS8设置需要调用locationManager.requestAlwaysAuthorization()
5.写方法判断运行设备的版本: func ios8() ->Bool { return UIDevice.currentDevice().systemVersion == "8.1" }
6.启动工作:locationManager.startUpdationgLocation()
7.继承一个“协议”获得回调函数:CLLocationManagerDelegate
8.重载函数,实现获得地理信息的方法:
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!){
//定义变量location 接受locations数组的最后一个对象,并把AnyObject类型转换为定义的类型
var location : CLLocation = locations[locations.count-1] as CLLocation
//判断获得的location值是否正确,正确打印出来经纬度,并停止回调。
if(location.horizontalAccuracy > 0){
println(location.coordinate.latitude)
println(location.coordinate.longitude)
locationManager.stopUpdatingLocation()
}
}
9.实现获得错误信息的方法:
func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!){
println(error)
}
10. 为了支持ios8,需要设置一下plist文件,新增两个值:
NSLocationAlwaysUsageDescription:我们需要使用你的地理位置信息
NSLocationUsageDescription: 我们需要使用你的地理位置信息
11.绑定viewController,保存
12.编译,运行程序,点击允许获得地理信息位置,设置断点可以查看运行情况。
13.我的运行出现:kCLErrorDomain错误,重启xcode即可。其它错误可能是因为网络设置而造成的。
14.我的地址位置:经度:37.785834,维度:-122.406417