IOS:个人笔记|UI__懒加载及其要注意的地方

懒加载,在需要对象的时候才去加载,全局只会被加载一次,全局可以使用。一般使用懒加载的对象都是全局变量,例如某个UI对象。
通常是重写该成员变量的get方法,先判断对象是否为空,如果为空,则创建,设置属性等等。如果不为空,则直接返回该对象。
使用懒加载的好处是每个对象的get方法负责其实例化,该用到的时候再加载。代码整体可读性好。彼此间独立性强。

 

注意在对象的getter方法里,切勿使用self.XX,假如下面如果用self.view addSubview:self.label,后面的self.label又调用label的getter方法,就会造成死循环。

另外在实际的开发中切勿滥用懒加载,只要是个对象就写成懒加载的形式,这样其实显得有点累赘。如果某对象是偶尔使用,那么我们就可以使用懒加载。

下面是一个懒加载的简单例子

复制代码
 1 @property(strong,nonatomic)UILabel *label;
2 -(UILabel *)label{ 3     if(!_label) 4     { 5         _label=[[UILabel alloc]initWithFrame:CGRectMake(202010040)]; 6         _label.text=@"加载"; 7         _label.textColor=[UIColor redColor]; 8         [self.view addSubview: _label]; 9     } 10     return _label; 11 }
复制代码

 

 

posted @   DDD-SagerKing  阅读(147)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示
主题色彩