iOS 定位功能简单实现

简介

之前的项目本来只有一个地方用到定位,随着项目的迭代,不少地方用到,而且还要求不用地方都得定位.所以就导致每个地方都写了一大堆一模一样的代码,看起来很多余的.为了使用方便和维护,简单的封装了一下定位的相关代码逻辑.

环境配置

很简单,就导入CoreLocation.framework就好.

(1) 项目->Build Phases ->Link Binary With Libraries ->点击"+" ->搜索CoreLocation.framework即可

iOS 定位功能简单实现_第1张图片
image

(2) 因为APP定位需要用户的允许,所以需要在Info.plist配置文件添加允许,分别是NSLocationAlwaysUsageDescription和NSLocationWhenInUseUsageDescription

找到Info.plist文件->右击->Open As->Source Code->添加键值对

NSLocationAlwaysUsageDescription我们的App需要通过您所在的地理位置获取地址信息NSLocationWhenInUseUsageDescription我们的App需要通过您所在的地理位置获取地址信息

iOS 定位功能简单实现_第2张图片
image

添加完之后,找到Info.plist文件->右击->Open As->Property list ,看到下面的,就说明成功了

iOS 定位功能简单实现_第3张图片
image

(3)在viewController文件中导入EasyGPSLocation.h文件,即可

iOS 定位功能简单实现_第4张图片
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.

你可能感兴趣的:(iOS 定位功能简单实现)