如何封装一个定位对象类

先说一下它的神奇之处:

1.类的本身是一个单例类,但是每次调用属性,都能在此启动实时定位获取到当前位置数据,这样就实现了可以重用公共类的目的了。

2.命名:方法初始化一般都用setup这边也不例外

- (void)setup {

     if ([CLLocationManager locationServicesEnabled]) {

               _currentLocation = [[CLLocationManager alloc] init];

                _currentLocation.delegate = self;

               _currentLocation.distanceFilter = 200

               _currentLocation.desiredAccuracy =   kCLLocationAccuracyNearestTenMeters;

                 if (SYSTEM_VERSION >= 8.0) {

                 [_currentLocation requestAlwaysAuthorization];

       }

        [_currentLocation startUpdatingLocation];

   }  

}

3.每次用单例类调用这个block属性都会重新定位,同时获取到新的数据,妙!!!

- (void)getCurrentGeolocationsCompled:(GetLocationCompledBlock)compled{

    self.getLocationCompledBlock = compled;

    [_currentLocation startUpdatingLocation];

}

为了定位类不出bug注意点:

1.plist设置两个属性

NSLocationAlwaysUsageDescription

NSLocationWhenInUseUsageDescription

2._geoCoder = [[CLGeocoder alloc] init]; 请设成全局对象

[_geoCoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray* _Nullable placemarks, NSError * _Nullable error) {

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

推荐阅读更多精彩内容

  • http://www.cnblogs.com/kenshincui/p/4125570.html 摘要: 现在很多...
    大崔老师阅读 3,326评论 1 2
  • 技术无极限,从菜鸟开始,从源码开始。 由于公司目前项目还是用OC写的项目,没有升级swift 所以暂时SDWebI...
    充满活力的早晨阅读 12,694评论 0 2
  • 出自http://my.oschina.net/are1OfBlog/blog/420034 摘要 现在很多社交、...
    JJO阅读 4,176评论 4 19
  • 时光没有影子,溺水一样,缓缓漫过每个人的身体。初三也算是人生中一个不大不小的转折点了吧。 从小到大就被父母和老师灌...
    宇宙溪月阅读 806评论 0 4
  • 说到隐私,其实每个人都会有自己不愿意见人就说的小秘密,很多时候连自己爸妈、闺蜜都不愿意说的话语我们称为自己的...
    赵帮梅阅读 749评论 2 0