弱引用的代表变为零

时间:2019-06-13 11:41:06

标签: ios swift delegates standards

我正在创建一个引用较弱的委托,并且需要经历几个完成(关闭),然后delegate变为nil。当我删除weak引用时,它可以正常工作。

weak var contentDelegate: ContentDelegate?

实际上是否可以在没有最佳实践的情况下创建没有weak引用的委托属性?缺点是什么?

2 个答案:

答案 0 :(得分:1)

  

实际上是否允许创建代表属性而不弱   快速参考最佳实践?缺点是什么?

是的,您可以创建没有weak引用的委托。

不,这不在最佳实践范围之内。

缺点是存在保留周期的风险,其中引用不会从内存中释放出来,从而导致内存泄漏。

答案 1 :(得分:1)

如果您可以共享代码,那就太好了。 没有代码很难说,但是看起来您有异步调用,并且在某些异步调用delegate上,我想它是控制器或从内存中释放的某些服务

如果您删除weak,则delegate和此委托的所有者在内存中彼此保持住时,将获得保留周期