在iOS开发的过程中,我们一般不用retain,和assign,而是用strong和weak,这时候,我们可以把strong理解为retain,而weak理解为assign,比较容易理解。
在ARC情况下:
Strong
和weak:
如果一个对象同时被两个指针所引用,例如:
Object *b1 = [[Object alloc]initAge:23];
Object *b2 = b1;
1.
如果你在property里面声明的是strong,那么这个就是强引用,
在进行赋值的时候,对象的空间不会被释放,因为还有一个
b2引用着这个对象,引用计数器不为0.空间不会被回收
2.
当property的属性是weak(弱引用)的时候,当进行初始化
的时候。b1拥有着对象的真正的空间,而b2没有这个对象
的所有权,当把b1置空的时候,此时的对象没有被任何指针
引用,这时候,系统就会自动的回收内存。
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-12-15 10:21:47