标签:des style blog color 使用 io strong ar art
#import "CJViewController.h" #import <CoreLocation/CoreLocation.h> @interface CJViewController ()<CLLocationManagerDelegate> @property (nonatomic, strong)CLLocationManager *manager; @end @implementation CJViewController // 因为位置管理器在全局中只需一份,所以只需创建一次,使用懒加载 - (CLLocationManager *)manager { if (!_manager) { // 1.创建位置管理器(用于定位用户的位置) _manager = [[CLLocationManager alloc] init];// 创建完位置管理器后,系统默认不会自动定位,因为定位比较耗电,它不会自动开始定位,如果要开始用户定位,要调用startUpdatingLocation方法 // 设置代理,告诉用户位置 _manager.delegate = self; } return _manager; } - (void)viewDidLoad { [super viewDidLoad]; // 检测定位服务是否可用(可能是程序第一次访问用户位置时,被用户点击了Don‘t Allow导致定位服务不可用) if ([CLLocationManager locationServicesEnabled]) { // 如果定位服务能用,开始定位 [self.manager startUpdatingLocation]; // 通过代理告诉用户的位置 // 每隔多少米定位一次 kCLDistanceFilterNone,表示用户任何一个移动都会定位一次,如果不想任何一个移动就定位一次,那么就要设定一个值 self.manager.distanceFilter = kCLDistanceFilterNone; // 精准度,越高越耗电 self.manager.desiredAccuracy = kCLLocationAccuracyHundredMeters; // 代表一百米内是准确的 }else {// 不能定位用户的位置 // 1.告诉用户检查网络状况 // 2.提醒用户打开定位开关 } [self countDistance]; } // 计算距离 - (void)countDistance { CLLocation *location1 = [[CLLocation alloc] initWithLatitude:39.5 longitude:136]; CLLocation *location2 = [[CLLocation alloc] initWithLatitude:40 longitude:136]; CLLocationDistance distance = [location1 distanceFromLocation:location2]; NSLog(@"距离:%f", distance); } #pragma mark - CLLocationManagerDelegate // 时时监测(定位)用户的位置,调用比较频繁 - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { // 数组里面的每一个对象都是CLLocation对象,一个CLLocation就代表一个位置 CLLocation *loc = [locations firstObject]; NSLog(@"%d", locations.count); // 停止更新位置,当用户不使用定位服务时,应当马上停止定位(更新), 因为非常耗电 // [manager stopUpdatingLocation]; } @end
标签:des style blog color 使用 io strong ar art
原文地址:http://www.cnblogs.com/Fc-ios/p/3945665.html