美文网首页iOS Developer
iOS开发之开启定位

iOS开发之开启定位

作者: 提莫酱T | 来源:发表于2017-03-16 14:31 被阅读0次

    前言:手机定位功能每个APP都会用到,接下来我就为大家演示如何定位,不足之处还望指出。

    第一步导入框架

    第二步:我直接把我文件里的代码给拷贝下来了我就不说了(文件继承NSObject)

    .h文件

    #importtypedef void(^LoactionBlock)(NSString *lat, NSString *lon);

    @interface DKLoactionManager : NSObject

    //单利

    +(instancetype)sharedManager;

    -(void)getGPS:(LoactionBlock)block;

    @end

    .m文件

    #import "DKLoactionManager.h"#import@interface DKLoactionManager ()@property(nonatomic,strong) CLLocationManager *locmanager;

    @property(nonatomic,copy) LoactionBlock block;

    @end

    @implementation DKLoactionManager

    //1.单利

    +(instancetype)sharedManager{

    static DKLoactionManager *_manager;

    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

    _manager = [[DKLoactionManager alloc]init];

    });

    return _manager;

    }

    //2.

    -(instancetype)init{

    self = [super init];

    if (self) {

    _locmanager = [[CLLocationManager alloc]init];

    [_locmanager setDesiredAccuracy:kCLLocationAccuracyBest];//所需的精度设置为最好

    _locmanager.distanceFilter = 100;//距离过滤

    _locmanager.delegate = self;

    if (![CLLocationManager locationServicesEnabled]) {

    NSLog(@"开启定位服务");

    } else {

    CLAuthorizationStatus status = [CLLocationManager authorizationStatus];//设置授权

    if (status == kCLAuthorizationStatusNotDetermined) {//如果未确定授权状态

    [_locmanager requestWhenInUseAuthorization];//请求用户授权

    }

    }

    }

    return  self;

    }

    //用户愿意接受定位服务才会调用这个方法

    - (void)locationManager:(CLLocationManager *)manager

    didUpdateToLocation:(CLLocation *)newLocation

    fromLocation:(CLLocation *)oldLocation{

    CLLocationCoordinate2D coor = newLocation.coordinate;//coordinate坐标

    NSLog(@"%@",@(coor.latitude));

    NSLog(@"%@",@(coor.longitude));

    }

    -(void)getGPS:(LoactionBlock)block{

    self.block = block;

    [self.locmanager startUpdatingLocation];//开始定位位置

    }

    @end

    第三步在info.plist文件里添加(有的朋友可能打不出来我在这里给大家写出了,把这段代码添加进去就行了:Privacy - Location When In Use Usage Description)

    第四步:在APPdelegate文件里面调用一下(代码如下:假设你使用的是我上面的代码)

    [[DKLoactionManager sharedManager] getGPS:^(NSString *lat, NSString *lon) {

    }];

    第五步:效果图

    尾笔:祝福大家身体健康,工作顺利。

    相关文章

      网友评论

        本文标题:iOS开发之开启定位

        本文链接:https://www.haomeiwen.com/subject/sgqjnttx.html