ios 什么情况下使用assign,copy,retain,strong,weak
2018-02-13 22:36
525 查看
1、assign:
基础类型(简单类型,原子类型):NSInteger,CGPoint,CGFloat,C数据类型(int,float,double,char等等)assign 适用于基本数据类型如int,float,struct等值类型,不适用于引用类型。
因为值类型会被放入栈中,遵循先进后出原则,由系统负责管理栈内存。
而引用类型会被放入堆中,需要我们自己手动管理内存或通过ARC管理。
2、copy:
含有可深度拷贝的mutable子类的类,如NSArray,NSSet,NSDictionary,NSData,NSCharacterSet,NSIndexSet,NSString
但NSMutableArray这样的不可以
3、retain:
其他NSObject和其子类对象
4、strong:
自定义对象,一般用strong
_btn = [[UIButtonalloc] init];
[self.viewaddSubview:_btn];
5、weak:
(1)用storyboard拖线的使用weak
(2)手动创建控件
UIButton *btn =[[UIButton alloc] init];
_btn = btn;
[selfaddSubview:_btn];
weak 适用于delegate和block等引用类型,
不会导致野指针问题,也不会循环引用,非常安全。
基础类型(简单类型,原子类型):NSInteger,CGPoint,CGFloat,C数据类型(int,float,double,char等等)assign 适用于基本数据类型如int,float,struct等值类型,不适用于引用类型。
因为值类型会被放入栈中,遵循先进后出原则,由系统负责管理栈内存。
而引用类型会被放入堆中,需要我们自己手动管理内存或通过ARC管理。
2、copy:
含有可深度拷贝的mutable子类的类,如NSArray,NSSet,NSDictionary,NSData,NSCharacterSet,NSIndexSet,NSString
但NSMutableArray这样的不可以
3、retain:
其他NSObject和其子类对象
4、strong:
自定义对象,一般用strong
_btn = [[UIButtonalloc] init];
[self.viewaddSubview:_btn];
5、weak:
(1)用storyboard拖线的使用weak
(2)手动创建控件
UIButton *btn =[[UIButton alloc] init];
_btn = btn;
[selfaddSubview:_btn];
weak 适用于delegate和block等引用类型,
不会导致野指针问题,也不会循环引用,非常安全。
相关文章推荐
- 什么情况下我们使用copy,assign,retain,strong,weak?
- iOS - property,strong,weak,retain,assign,copy,nomatic 的区别及使用
- iOS - property,strong,weak,retain,assign,copy,nomatic 的区别及使用
- iOS 关键字 copy,assign,strong,retain,weak,readonly,readwrite,nonatomic,atomic,unsafe_unretained的使用与区别
- iOS strong .copy .retain .weak .assign的区别,以及各自的用法
- IOS中属性的关键修饰词:strong weak assign copy retain等。。
- iOS中assign,copy,retain之间的区别以及weak和strong的区别
- retain/strong /assign/weak/copy 有什么区别
- iOS内存管理retain,assign,copy,strong,weak
- 什么情况下用copy、assign、retain、strong...
- IOS内存管理retain,assign,copy,strong,weak
- ios中assign、copy 、retain、strong、weak的区别
- IOS内存管理retain, assign, copy, strong, weak
- retain,copy,assign,strong,weak,autorelease,nonatomic,atomic等得使用及区别
- iOS strong,copy,retain,weak,assign的区别,以及各自的用法
- (ios实战):retain,copy,assign及autorelease ,strong,weak
- IOS内存管理retain,assign,copy,strong,weak
- 转(ios实战):retain,copy,assign及autorelease ,strong,weak
- IOS内存管理retain,assign,copy,strong,weak
- iOS:ARC相关知识,assign/copy/retain/strong/weak/readyonly/readwrite/nonatomic/atomic