iOS--合理定义对象的引用类型strong/weak/assign/copy
2015-07-18 23:22
507 查看
在ios中一定要合理使用对象的引用类型:
最佳原则:在ios中任何一个对象只有一个强引用
使用weak的情况:
1、懒加载的方式需要使用weak修饰:
如@property(nonatmic,weak) IBOutlet UILabel *lbl;
备注:所谓的懒加载就是指控件通过IB拖到根视图中,再通过连线的方式与ViewController中的属性对应起来。此种方式就相当于self.view执行了addSubview()方法,即self.view对该控件做了强引用,那么在viewController中只需要做弱引用即可。
使用strong的情况:
1、非懒加载(需要通过代码来alloc+init)
eg.未将控件拖到IB中,在h文件中声明了控件,在m文件中初始化了这个控件对象。此种情况需要在声明的时候,使用强引用。即:@property(nonatmic,strong) IBOutlet UILabel *lbl; 对应的后面应用有其初始化方法:lbl = [[UILabel alloc] init];
使用assign的情况:
1、对int、double、float、BOOL 等数值型对象的定义。
eg.@property(nonatomic,assign) BOOL tf;
使用copy的情况:
1、对于NSString类型的对象定义:
eg.@property(nonatomic,copy) NSString *strName;
最佳原则:在ios中任何一个对象只有一个强引用
使用weak的情况:
1、懒加载的方式需要使用weak修饰:
如@property(nonatmic,weak) IBOutlet UILabel *lbl;
备注:所谓的懒加载就是指控件通过IB拖到根视图中,再通过连线的方式与ViewController中的属性对应起来。此种方式就相当于self.view执行了addSubview()方法,即self.view对该控件做了强引用,那么在viewController中只需要做弱引用即可。
使用strong的情况:
1、非懒加载(需要通过代码来alloc+init)
eg.未将控件拖到IB中,在h文件中声明了控件,在m文件中初始化了这个控件对象。此种情况需要在声明的时候,使用强引用。即:@property(nonatmic,strong) IBOutlet UILabel *lbl; 对应的后面应用有其初始化方法:lbl = [[UILabel alloc] init];
使用assign的情况:
1、对int、double、float、BOOL 等数值型对象的定义。
eg.@property(nonatomic,assign) BOOL tf;
使用copy的情况:
1、对于NSString类型的对象定义:
eg.@property(nonatomic,copy) NSString *strName;
相关文章推荐
- iOS bug处理
- iOS常用正则表达式
- iOS 阶段学习第25天笔记(iOS沙盒机制介绍)
- iOS 阶段学习第24天笔记(Block的介绍)
- iOS 阶段学习第23天笔记(XML数据格式介绍)
- iOS图片规格
- iOS 阶段学习第22天笔记(JSON数据格式介绍)
- iOS第三天认识及了解注意
- IOS 学习路线
- IOS开发-12.Autoresizing概述
- IOS __attribute__ ((warn_unused_result))的含义
- 联想一体机BIOS设置U盘启动的方法
- iOS开发:快速集成支付宝快捷支付
- IOS多线程之dispatch_once剖析
- iOS Xcode中cell与tableView的顶部有空白,如何去掉空白
- Dell poweredge r210进BIOS修改磁盘控制器(SATA Controller)接口模式
- iOS7的多任务处理
- 使用IOS7原生API进行二维码条形码的扫描
- iOS上使用自定义ttf字体
- iOS中用正则表达式验证邮箱和手机号