[问题] block retain 问题

楼主: issuemylove (NotLove)   2016-05-16 19:54:03
各位好
我利用AFNetworking写了个重复地询问server状态的连线(程式码在下行网址)
http://pastebin.com/AYUDgK2j
想问说,一般网络上看到的情况是
viewController A retain 一个 block B
B 中用到 A 时要使用__weak才不会造成memory leak
程式码是我写的,可是我搞不清楚这样写对不对
感觉是 AFNetworking A, retain Block B, B 再 retain 自己写的Api C
然后 C 又retain B,...其实我搞糊涂了真正的retain方向没个概念
另外我这样写是正确的吗? 谢谢各位出手相救!
作者: Esvent (Esvent)   2016-05-16 23:32:00
基本上就是生命周期的概念 网络连线大多都是任务式的物件任务结束之后就会消失 被他retain的对象也不再受他影响所以若是你的ViewController应该比你的连线任务活的还久那么retian它就没什么问题但若是你的ViewController的生命周期不该受到该连线任务的控制的话 那就该使用weak
楼主: issuemylove (NotLove)   2016-05-17 11:02:00
谢谢楼上!
作者: maxqq (max)   2016-05-19 00:47:00
https://goo.gl/95K8Hf k 完它你就懂了

Links booklink

Contact Us: admin [ a t ] ucptt.com