strong,weak,retain,assign,copy ,nonmatic 等的区别
2018-02-15 16:48
423 查看
assign: 简单赋值,不更改索引计数(Reference Counting)对基础数据类
copy: 建立一个索引计数为1的对象,然后释放旧对象。对NSString
retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1 ,对其他NSObject和其子类
weak和strong的区别:
weak和strong不同的是 当一个对象不再有strong类型的指针指向它的时候 它会被释放 ,即使还有weak型指针指向它。一旦最后一个strong型指针离去 ,这个对象将被释放,所有剩余的weak型指针都将被清除。
copy与retain的区别:
copy其实是建立了一个相同的对象,而retain不是;
copy是内容拷贝,retain是指针拷贝;
copy是内容的拷贝 ,对于像NSString,的确是这样,如果拷贝的是NSArray这时只是copy了指向array中相对应元素的指针.这便是所谓的"浅复制"。
__block和__weak修饰符的区别
__block不管是ARC还是MRC模式下都可以使用,可以修饰对象,还可以修饰基本数据类型。
__weak只能在ARC模式下使用,也只能修饰对象(NSString),不能修饰基本数据类型(int)。
__block对象可以在block中被重新赋值,__weak不可以。
copy: 建立一个索引计数为1的对象,然后释放旧对象。对NSString
retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1 ,对其他NSObject和其子类
weak和strong的区别:
weak和strong不同的是 当一个对象不再有strong类型的指针指向它的时候 它会被释放 ,即使还有weak型指针指向它。一旦最后一个strong型指针离去 ,这个对象将被释放,所有剩余的weak型指针都将被清除。
copy与retain的区别:
copy其实是建立了一个相同的对象,而retain不是;
copy是内容拷贝,retain是指针拷贝;
copy是内容的拷贝 ,对于像NSString,的确是这样,如果拷贝的是NSArray这时只是copy了指向array中相对应元素的指针.这便是所谓的"浅复制"。
__block和__weak修饰符的区别
__block不管是ARC还是MRC模式下都可以使用,可以修饰对象,还可以修饰基本数据类型。
__weak只能在ARC模式下使用,也只能修饰对象(NSString),不能修饰基本数据类型(int)。
__block对象可以在block中被重新赋值,__weak不可以。
相关文章推荐
- copy,assign,strong,retain,weak,readonly,nonatomic的区别
- iOS开发-retain/assign/strong/weak/copy/mutablecopy/autorelease区别
- iOS中assign,copy,retain之间的区别以及weak和strong的区别
- iOS中assign,copy,retain之间的区别以及weak和strong的区别
- copy,assign,strong,retain,weak,readonly,nonatomic的区别
- retain/assign/strong/weak/copy/mutablecopy/autorelease区别
- iOS开发-assign、retain、copy、strong、weak的区别
- assign,copy,retain的区别以及weak和strong的区别
- strong,weak,assign,retain,copy区别与联系
- iOS中assign,copy,retain之间的区别以及weak和strong的区别
- retain/strong /assign/weak/copy 有什么区别
- iOS中assign,copy,retain之间的区别以及weak和strong的区别
- iOS strong,copy,retain,weak,assign的区别,以及各自的用法
- copy,assign,strong,retain,weak,readonly,nonatomic的区别
- property参数strong 、weak、copy 、assign 、retain 、unsafe_unretained 与autoreleasing区别和作用详解
- property中的strong 、weak、copy 、assign 、retain 、unsafe_unretained 与autoreleasing区别和作用详解
- iOS strong .copy .retain .weak .assign的区别,以及各自的用法
- strong,weak,copy,retain和assign的区别
- ios中assign、copy 、retain、strong、weak的区别
- property中的strong 、weak、copy 、assign 、retain 、unsafe_unretained 与autoreleasing区别和作用详解