作者issuemylove (NotLove)
看板MacDev
标题[问题] block retain 问题
时间Mon May 16 19:54:03 2016
各位好
我利用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方向没个概念
另外我这样写是正确的吗? 谢谢各位出手相救!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.163.54.140
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MacDev/M.1463399646.A.AF6.html
1F:→ Esvent: 基本上就是生命周期的概念 网路连线大多都是任务式的物件 05/16 23:32
2F:→ Esvent: 任务结束之後就会消失 被他retain的对象也不再受他影响 05/16 23:34
3F:→ Esvent: 所以若是你的ViewController应该比你的连线任务活的还久 05/16 23:35
4F:→ Esvent: 那麽retian它就没什麽问题 05/16 23:37
5F:→ Esvent: 但若是你的ViewController的生命周期不该受到该连线任务的 05/16 23:38
6F:→ Esvent: 控制的话 那就该使用weak 05/16 23:39
7F:→ issuemylove: 谢谢楼上! 05/17 11:02