strong和weak

来源:互联网 发布:嵌入式好还是java好 编辑:程序博客网 时间:2024/06/07 00:24

iOS开发的过程中,我们一般不用retain,和assign,而是用strongweak这时候,我们可以把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置空的时候,此时的对象没有被任何指针

引用,这时候,系统就会自动的回收内存。


1 0
原创粉丝点击