iOS 定位功能简单实现

简介

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

环境配置

很简单,就导入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.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容