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

来源:互联网 发布:大数据技术专业支撑 编辑:程序博客网 时间:2024/05/29 11:20

懒加载(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.优点

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

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

0 0