ios开发

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

2017-12-07  本文已影响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不能释放

上一篇下一篇

猜你喜欢

热点阅读