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不能释放
网友评论