29,028
社区成员
发帖
与我相关
我的任务
分享
Swift中没有了strong
, assign
, copy
属性修饰符,对于所有的class
类型变量都默认采用了strong
类型,如果需要指定使用weak
,则需要添加weak
关键字修饰。
正是由于这种默认的strong
类型,在闭包
中会引起循环引用
,导致内存无法释放,为了能够在闭包(block
)中正常释放内存,需要对闭包中的self
使用弱引用
,也就是不持有self
对象。 除了使用 weak关键字,另一个关键字unowned也可以打破循环引用的问题, 但它们之间还是存在区别的。
具体的内容,可查阅:https://zhanglei.blog.csdn.net/article/details/124068087