前言:手機定位功能每個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];//所需的精度設(shè)置為最好
_locmanager.distanceFilter = 100;//距離過濾
_locmanager.delegate = self;
if (![CLLocationManager locationServicesEnabled]) {
NSLog(@"開啟定位服務(wù)");
} else {
CLAuthorizationStatus status = [CLLocationManager authorizationStatus];//設(shè)置授權(quán)
if (status == kCLAuthorizationStatusNotDetermined) {//如果未確定授權(quán)狀態(tài)
[_locmanager requestWhenInUseAuthorization];//請求用戶授權(quán)
}
}
}
return? self;
}
//用戶愿意接受定位服務(wù)才會調(diào)用這個方法
- (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文件里面調(diào)用一下(代碼如下:假設(shè)你使用的是我上面的代碼)
[[DKLoactionManager sharedManager] getGPS:^(NSString *lat, NSString *lon) {
}];
第五步:效果圖


尾筆:祝福大家身體健康,工作順利。