美文网首页ios开发
代理应该用strong还是weak修饰?

代理应该用strong还是weak修饰?

作者: 微_涼 | 来源:发表于2017-12-07 15:53 被阅读20次

    xcode能够帮我们检测出循环引用,那为什么不帮我们直接解决掉循环引用的问题呢?

    在使用代理时,一般情况下,我们都是使用weak来修饰,这样是为了防止造成循环引用。

    但是在有的时候,代理也会需要strong去修饰,比如单例模式中,苹果的原生网络请求

    [NSURLSession sessionWithConfiguration: delegate: delegateQueue:];

    苹果的一段描述是:The session object keeps a strong reference to the delegate until your app exits or explicitly invalidates the session.

    也就是说session对delegate是有强引用的,这样的话就会造成循环引用,导致session不能释放

    相关文章

      网友评论

        本文标题:代理应该用strong还是weak修饰?

        本文链接:https://www.haomeiwen.com/subject/dnpbrttx.html