Re: [問題] block retain 問題
※ 引述《issuemylove (NotLove)》之銘言:
: 各位好
: 我利用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方向沒個概念
: 另外我這樣寫是正確的嗎? 謝謝各位出手相救!
我舉個例子:有 FirstViewController 與 SecondViewController,介面如下面網址:
https://gist.github.com/Darktt/b42ddc12d9ae049f0431f93775a756de
FirstViewController 會在其中一次的按鈕觸發下建立 SecondViewController,
並將 FirstViewController 給了 SecondViewController,
之後將它顯示出來。
這時候 FirstViewController 其實還在記憶體中,不會被釋放,
所以不用再使用 retain (strong) 將 FirstViewController 增加一次的 retain count,
這時候在 SecondViewController dealloc 的時候也不能釋放 FirstViewController,
因為這會造成提早釋放的問題。
其實 assign(weak) 與 retain(strong) 的差異是這個物件有沒有被其他的物件長期持有
有的話就是 assign(weak),沒有就是 retain(strong)。
--
#1ID_Wqk2 (iPhone) [ptt.cc] [問題] 記錄天數的app
推
09/17 14:40,
09/17 14:40
→
09/17 14:41,
09/17 14:41
→
09/17 14:44,
09/17 14:44
→
09/17 14:46,
09/17 14:46
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.234.121
※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1463408227.A.CF5.html
推
05/17 11:01, , 1F
05/17 11:01, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章