weibo_之安z_0
2016-06-08 14:23
根据oc block的经验,通常我们调用闭包时都会把self声明为unower,lazy property的闭包会不会也有引用循环的问题?
计算属性的get一般用于使用自身其他属性计算得到的值 set就是用于得到的新value改变其他属性的值 显然需要受到双方制约的时候才会使用计算属性
通常只会声明get属性 这时候你就无法改变这个计算属性啦 否则你就破坏了这个计算属性的意义 显然 如果你重写其set方法的时候用self调用自身 妄想改变这个计算属性的值(显然这也就使得计算属性受到外界影响,而不是通过类内部其他属性计算得出) 系统就会爆出警告说你这样会自己调用自己 (我试过这样调用 无限循环卡死了。。。)
貌似这个属性一般只调用一次 而且不会调用自身属性的值 他是用其他属性算出自身属性
如果在计算属性中的Set函数self.value = newValue 就会出现循环引用的警告了
在OC的block中使用self一般先会转换成weak吧,
还是需要说明一下self的weak或者unower,防止循环应用的产生
会产生循环应用的问题
玩儿转Swift 2.0(第三季)
13968 学习 · 41 问题
相似问题