Table of Content

原本是研究 Location 框架的,学学定位相关的知识,无奈折腾一夜,iOS8 和之前有改动,网上也有人说 Xcode6 有 bug,定位方面的。总之,就是没弄成。

好了扯淡到这里,进入正题,说懒加载。

懒加载,英文名 LazyLoad。也称为延迟加载,即在需要的时候才加载(效率低,占用内存小)。所谓懒加载,写的是其 get 方法。

  • 不必将创建对象的代码全部写在 viewDidLoad 方法中,代码的可读性更强。
  • 每个控件的 getter 方法中分别负责各自的实例化处理,代码彼此之间的独立性强,松耦合。
  • 一定要先判断是否存在。

上代码

@interface ViewController () <CLLocationManagerDelegate>

@property (nonatomic, strong) CLLocationManager *locMgr;
@end


- (void)viewDidLoad {
    [super viewDidLoad];
    
    // 开始定位
    [self.locMgr startUpdatingLocation];
}

- (CLLocationManager *)locMgr {
    if (!_locMgr) { //判断是否为空
        self.locMgr = [[CLLocationManager alloc] init];
        // 设置代理
        self.locMgr.delegate = self;
        [self.locMgr requestAlwaysAuthorization];
    }
    return _locMgr;
}