iOS 中的定位功能,主要在 CoreLocation库中,需要用到位置管理器 CLLocationManager 来完成绝大多数事情。
要使用 CLLocationManager 首先需要一个对象~ 以及对它进行简单的设置,最后开启定位功能, 就开始定位了,定位成功或者失败后都会调用代理方法返回信息
1 CLLocationManager *manger; 2 3 manger = [[CLLocationManager alloc] init]; //初始化 4 5 manger.delegate = self; // 设置代理 6 7 manger.desiredAccuracy = kCLLocationAccuracyBest; // 定位精度 8 9 [manger startUpdatingLocation]; // 开始定位
当设置完这些,并且开启定位后,定位成功后会调用代理方法。当前,你的类一定要实现 代理 CLLocationManagerDelegate
常用的代理方法有两个,定位成功和定位失败后的:
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { for (CLLocation *loc in locations) { NSLog(@"位置:%@",[loc description]); } } - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error { NSLog(@"定位失败,原因:%@",[err localizedDescription]); }
详细的属性,比如精度啊,CLLocation 类的详细属性,以及其他的代理方法,有兴趣可翻阅官方文档,以后会有更详细介绍。