iOS 中的懒加载

iOS Oct 20, 2014

原本是研究 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;
}

Tags

Jie Li

🚘 On-road / 📉 US Stock / 💻 Full Stack Developer / 🎓 Grad Student / ®️ ENTJ

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.