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

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不能释放

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容