iOS开发之weak和assign的区别
2017-07-24 16:15
190 查看
共同点:
都可以修饰对象类型的property, 不会增加其引用计数.
不同点:
1.出现时期, assign出现在ARC之前, weak出现在ARC之后;
2.可修饰的类型, assign既可以修饰对象, 又可以修饰基本类型, 而weak只能修饰对象;
3.安全性, assign修饰的对象在被销毁之后, 其指针依然存在, 容易导致野指针错误, 而weak修饰的对象销毁之后指针自动设置为nil, 不会发生危险.
总结:
在ARC时代, 应该用weak来表示弱引用, 比如代理对象, 而用assign来修饰基本数据类型, 比如int, float, double. 最后建议, 为了兼容64位CPU, 尽量避免使用C数据类型, 而应该使用Objective-C新增的数据类型, 如NSInteger, NSUInteger, CGFloat等等.
都可以修饰对象类型的property, 不会增加其引用计数.
不同点:
1.出现时期, assign出现在ARC之前, weak出现在ARC之后;
2.可修饰的类型, assign既可以修饰对象, 又可以修饰基本类型, 而weak只能修饰对象;
3.安全性, assign修饰的对象在被销毁之后, 其指针依然存在, 容易导致野指针错误, 而weak修饰的对象销毁之后指针自动设置为nil, 不会发生危险.
总结:
在ARC时代, 应该用weak来表示弱引用, 比如代理对象, 而用assign来修饰基本数据类型, 比如int, float, double. 最后建议, 为了兼容64位CPU, 尽量避免使用C数据类型, 而应该使用Objective-C新增的数据类型, 如NSInteger, NSUInteger, CGFloat等等.
相关文章推荐
- IOS开发 strong,weak,retain,assign,copy nomatic 等的区别与作用
- iOS开发中ARC下的assign和weak区别
- IOS开发中ARC下的assign和weak区别
- iOS开发-assign、retain、copy、strong、weak的区别
- iOS小明开发笔记(二十) (retain、strong、weak、assign区别)
- iOS开发之assign retain copy strong weak 的区别
- iOS海哥开发笔记 (海哥原创,retain、strong、weak、assign区别)
- iOS开发-retain/assign/strong/weak/copy/mutablecopy/autorelease区别
- iOS中assign,copy,retain之间的区别以及weak和strong的区别
- iOS中assign,copy,retain之间的区别以及weak和strong的区别
- 从一个弱引用导致的奔溃 谈 weak assign strong的应用场景【iOS开发教程】
- iOS property中的strong 、weak、copy 、assign 、retain 、unsafe_unretained 与autoreleasing区别和作用详解
- iOS中 assign 和 weak 修饰符的区别
- 系列:iOS开发-strong 、weak、copy 、assign 、retain
- iOS中assign,copy,retain之间的区别以及weak和strong的区别
- iOS开发基础:strong、weak、assign、retain
- iOS开发63-__block 和 __weak的区别
- iOS nomatic strong,weak,retain,assign,copy 等的区别。
- iOS开发--assign、retain、copy的区别
- iOS开发笔记--atomic与nonatomic,assign,copy与retain的定义和区别