2008-12-21 70 views
0

執行此代碼:爲什麼setFrame會增加圖層的引用計數?

mainLyr = [[CALayer layer] retain]; 
[mainLyr setFrame:CGRectMake(0.0,0.0,23.0,23.0)]; 

的調試器,我發現retain後的mainLyr引用計數爲2。這是正確的。

但是setFrame之後,引用計數增加到3個。爲什麼?以及如何確定一種方法是增加還是減少引用計數(在參考手冊中找不到)。

回答

4

正如在stackoverflow上多次說過的那樣,不要依賴於你的內存管理的refcount。按照memory management rules,你會做得很好。

4

格雷厄姆是正確的,但它增加引用計數的原因是你在這裏使用核心動畫;一個圖層的框架變化是動畫的,在動畫過程中,目標對象被保留。在動畫持續時間(默認0.25秒,我相信)後,您的參考計數應該回落1。

相關問題