獲得地址位置的流程及遇到的問題
記憶一下:
1.引用包:import CoreLocation
2.定義常量let locationManager :CLLocationManager = CLLocationManager();
3.設(shè)置精確度locationManager.desiredAccuracy = kCLLocationAccuracyBest
4.iOS8要判斷,如果是iOS8設(shè)置需要調(diào)用locationManager.requestAlwaysAuthorization()
5.寫方法判斷運(yùn)行設(shè)備的版本: func ios8() ->Bool { return UIDevice.currentDevice().systemVersion == "8.1" }
6.啟動(dòng)工作:locationManager.startUpdationgLocation()
7.繼承一個(gè)“協(xié)議”獲得回調(diào)函數(shù):CLLocationManagerDelegate
8.重載函數(shù),實(shí)現(xiàn)獲得地理信息的方法:
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!){
? ? ? ? //定義變量location 接受locations數(shù)組的最后一個(gè)對象,并把AnyObject類型轉(zhuǎn)換為定義的類型
? ? ? ? var location : CLLocation = locations[locations.count-1] as CLLocation
? ? ? ? //判斷獲得的location值是否正確,正確打印出來經(jīng)緯度,并停止回調(diào)。
? ? ? ? if(location.horizontalAccuracy > 0){
? ? ? ? ? ? println(location.coordinate.latitude)
? ? ? ? ? ? println(location.coordinate.longitude)
?? ? ? ? ? ?
? ? ? ? ? ? locationManager.stopUpdatingLocation()
? ? ? ? }
}
9.實(shí)現(xiàn)獲得錯(cuò)誤信息的方法:
func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!){
? ? ? ? println(error)
?}
10. 為了支持ios8,需要設(shè)置一下plist文件,新增兩個(gè)值:
?? ? ? NSLocationAlwaysUsageDescription:我們需要使用你的地理位置信息
?? ? ? NSLocationUsageDescription: ? ? ? ? ? ? 我們需要使用你的地理位置信息
11.綁定viewController,保存
12.編譯,運(yùn)行程序,點(diǎn)擊允許獲得地理信息位置,設(shè)置斷點(diǎn)可以查看運(yùn)行情況。
13.我的運(yùn)行出現(xiàn):kCLErrorDomain錯(cuò)誤,重啟xcode即可。其它錯(cuò)誤可能是因?yàn)榫W(wǎng)絡(luò)設(shè)置而造成的。
14.我的地址位置:經(jīng)度:37.785834,維度:-122.406417
2016-09-17
uuu