[問題] 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