assign、copy、retain、weak、strong的区别与联系
来源:互联网 发布:python基础教程 微盘 编辑:程序博客网 时间:2024/04/28 22:06
今天遇到了一个问题,给一个数组里面的对象附上值之后,在别的地方取,居然取不出来,最后发现问题是我把一个BOOL类型的属性设成了assign。我当时用了ARC,改成strong还报错。说是普通类型不能设成strong。最后把BOOL类型改成了NSString才解决了。所以恶补了一下有关属性的相关知识。
assign、copy、retain、weak、strong的区别与联系
assign(ARC情况下为weak): 简单赋值,不更改索引计数。用于非指针变量。用于基础数据类型 (例如NSInteger)和C数据类型(int, float, double, char, 等),另外还有id
如:
@property (nonatomic, assign) int number;
@property (nonatomic, assign) id className;//id必须用assign
反正记住:前面不需要加 “*” 的就用assign吧
copy: 建立一个索引计数为1的对象,然后释放旧对象
retain(ARC情况下为strong):释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1.
我的出错的代码是从非ARC项目拷贝过来的,由此来看,只要把assign,设成weak即可。
0 0
- assign、copy、retain、weak、strong的区别与联系
- strong,weak,assign,retain,copy区别与联系
- strong assign weak retain copy 区别
- copy,assign,strong,retain,weak,readonly,nonatomic的区别
- copy,assign,strong,retain,weak,readonly,nonatomic的区别
- retain、copy、assign、 strong、weak、autorelease的用法和区别
- copy,assign,strong,retain,weak,readonly,nonatomic的区别
- copy,assign,strong,retain,weak,readonly,nonatomic的区别
- copy,assign,strong,retain,weak,readonly,nonatomic的区别
- copy,assign,strong,retain,weak,readonly,nonatomic的区别
- copy,assign,strong,retain,weak,readonly,nonatomic的区别
- copy,assign,strong,retain,weak,readonly,nonatomic的区别
- copy,assign,strong,retain,weak,readonly,nonatomic的区别
- iOS开发-assign、retain、copy、strong、weak的区别
- copy,assign,strong,retain,weak,readonly,nonatomic的区别
- 个人整理weak、assign、strong、copy、retain的区别
- iOS开发之assign retain copy strong weak 的区别
- strong,weak,copy,retain和assign的区别
- 找到单项链表中间那个元素,如果有两个则取前面一个
- Linux命令:echo
- Github 访问时出现Permission denied (public key)
- mse函数(均方误差函数)
- OpenGL教程翻译 第六课 平移变换
- assign、copy、retain、weak、strong的区别与联系
- 易经八卦在程序世界中的体现
- 树懒_移动开学笔记_day07_request_response
- Android 四大组件学习之Service六
- 库函数(无线视频)(7.22)
- 基于Ubuntu14.04的RK3288_PopMetal Android开发环境搭建过程小记
- Codeforces Round #312 (Div. 2) B. Amr and The Large Array
- 初创公司需不需要产品经理?
- 设计模式—生产者消费者模式