IOS小技巧:属性的lazyload懒加载的使用

懒加载(lazyload)是指对象在使用的时候再进行实例化创建的方法,懒加载的使用可以降低内存占用率,早ios开发中常见的小技巧。

1.懒加载的原理

懒加载实在getter方法的基础上使用的,当我们用.访问内部属性的时候,实际上是调用的对象的getter方法,因此,在实现文件中只要重写调用属性对象的getter方法,在getter方法中完成对象的实例化,并做基础设置,这样在第一次点访问的时候就会判断是否存在,不存在就会创建返回。

值得注意的是,在getter方法内部不能使用self.去调用对象,因为点调用实际就是调用的getter方法,这样会造成循环调用,造成死循环。

2.懒加载的使用

<span style="font-size:18px;">#import "ViewController.h"

@interface ViewController ()<UIWebViewDelegate>

@property(nonatomic,strong)UIWebView *webView;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    NSURL *fileUrl = [[NSBundle mainBundle]URLForResource:@"main" withExtension:@"html"];
    NSURLRequest *request = [[NSURLRequest alloc]initWithURL:fileUrl];
    
    //这里调用webview的时候才去加载
    [self.webView loadRequest:request];
    
}

//lazyload
-(UIWebView *)webView{
    //判断是否创建过,如果创建过则直接返回,没创建过则实例化
    if (!_webView) {
        //实例化对象
        _webView = [[UIWebView alloc]initWithFrame:self.view.bounds];
        //对对象的一些属性进行赋值
        _webView.delegate = self;
        _webView.backgroundColor = [UIColor whiteColor];
        [self.view addSubview:_webView];
    }
    //返回对象
    return _webView;
}


@end
</span>

3.优点

使用懒加载可以讲对象的创建单独管理,维护起来更方便

节省内存资源的耗损,只有当对象真正需要时才去创建。

猜你喜欢

转载自blog.csdn.net/qishiai819/article/details/51782855
今日推荐