为了账号安全,请及时绑定邮箱和手机立即绑定

在lazy property的闭包中会不会有引用循环的问题呢?

根据oc block的经验,通常我们调用闭包时都会把self声明为unower,lazy property的闭包会不会也有引用循环的问题?

正在回答

3 回答

计算属性的get一般用于使用自身其他属性计算得到的值 set就是用于得到的新value改变其他属性的值 显然需要受到双方制约的时候才会使用计算属性

通常只会声明get属性 这时候你就无法改变这个计算属性啦 否则你就破坏了这个计算属性的意义 显然 如果你重写其set方法的时候用self调用自身 妄想改变这个计算属性的值(显然这也就使得计算属性受到外界影响,而不是通过类内部其他属性计算得出) 系统就会爆出警告说你这样会自己调用自己 (我试过这样调用 无限循环卡死了。。。) 



0 回复 有任何疑惑可以回复我~

貌似这个属性一般只调用一次 而且不会调用自身属性的值 他是用其他属性算出自身属性

如果在计算属性中的Set函数self.value = newValue 就会出现循环引用的警告了

0 回复 有任何疑惑可以回复我~

在OC的block中使用self一般先会转换成weak吧,

还是需要说明一下self的weak或者unower,防止循环应用的产生

会产生循环应用的问题

1 回复 有任何疑惑可以回复我~
#1

weibo_之安z_0 提问者

额,oc的我了解,我在问关于swift的lazy property闭包中会有有循环引用问题发生
2016-06-16 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

在lazy property的闭包中会不会有引用循环的问题呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信