什么情况使用weak关键字,相比assign有什么不同?
使用 weak 的情形在 ARC中,有可能出现循环引用的问题,这时候解决方案就是让其中一端使用weak来解决,比如delegate代理属性。自身已经对它进行了一次强引用了,没必要再强引用一次,这时候也会使用weak。与assign的区别assign可以用于非OC对象,而weak必须用于OC对象。weak表明该属性定义了一种“非拥有关系”,为这种属性设置新值时,设置方法既不保留新值,也不释放旧值,当属性所指的对象销毁时,属性值会自动清空(nil); 而assign当设置方法只会针对“纯量类型”
复制链接