简介
之前的项目本来只有一个地方用到定位,随着项目的迭代,不少地方用到,而且还要求不用地方都得定位.所以就导致每个地方都写了一大堆一模一样的代码,看起来很多余的.为了使用方便和维护,简单的封装了一下定位的相关代码逻辑.
环境配置
很简单,就导入CoreLocation.framework就好.
(1) 项目->Build Phases ->Link Binary With Libraries ->点击"+" ->搜索CoreLocation.framework即可
image(2) 因为APP定位需要用户的允许,所以需要在Info.plist配置文件添加允许,分别是NSLocationAlwaysUsageDescription和NSLocationWhenInUseUsageDescription
找到Info.plist文件->右击->Open As->Source Code->添加键值对
NSLocationAlwaysUsageDescription我们的App需要通过您所在的地理位置获取地址信息NSLocationWhenInUseUsageDescription我们的App需要通过您所在的地理位置获取地址信息
image添加完之后,找到Info.plist文件->右击->Open As->Property list ,看到下面的,就说明成功了
image(3)在viewController文件中导入EasyGPSLocation.h文件,即可
image这样就可以通过这一点点代码进行我们想要的操作了
EasyGPSLocation.h
/**
获取单例
@return GPS定位控制器单例
*/
+ (instancetype)sharedInstance;
/**
* 注册GPS定位结果回调block
*
* @param block GPS定位结果回调block
*/
- (void)registerGPSLocationResultBlock:(GPSLocationResultBlock)block;
/**
获取定位服务是否可用
@return 定位服务是否可用
*/
+ (BOOL)locationServicesEnabled;
/**
启动定位,定位成功后会缓存最新的定位位置
@return 启动定位成功返回YES,否则返回NO
*/
- (BOOL)startLocation;
/**
获取定位位置,如果GPS定位操作还没有成功执行,则会尝试获取上一次启动GPS定位的位置
@return 定位位置或者nil
*/
+ (CLLocation*)getLocation;
/**
获取定位城市,如果GPS定位操作还没有成功执行,则会尝试获取上一次启动GPS定位的城市,如果没有获取到则默认返回“广州市”
@return 定位城市
*/
+ (NSString*)getLocationCity;
总结
定位的具体逻辑就不说明了,代码里面写的注释很清楚了,详情查看demo.
网友评论