我有一個CALayer
對象sublayer
。我在我的視圖控制器中將它用作self.sublayer
,因爲我已將它作爲視圖控制器頭文件中的一個屬性。需要釋放CALayer的內容屬性中包含的CGImage
我的子層的內容屬性等於設置爲使用CGImageRef
對象調用imageRef
創建UIImage
對象:
self.subLayer.contents = (id)[UIImage imageWithCGImage:imageRef].CGImage;
我再放開imageRef
對象馬上現在,它已經被用於創建子層內容,它不再需要:
CGImageRelease(imageRef);
但是,這是什麼在困擾着我。稍後在代碼中,我將不再需要self.sublayer.contents
,並且我想確保我釋放它正確包含的CGImage
。
如果我的NSLog self.sublayer.contents
將打印此控制檯:<CGImage 0x146537c0>
所以我需要能夠發佈這款CGImage
爲好。
我試圖用這個來釋放CGImage
,但NSLog的還是打印相同的控制檯:
CGImageRelease((__bridge CGImageRef)(self.subLayer.contents));
如果我用這一點,的NSLog將打印到控制檯(null)
,但我擔心這在技術上沒有釋放CGImage
:
self.subLayer.contents = nil;
請問子層的內容屬性設置爲nil
正確釋放的CGImage
,還是我在T糾正h that它不是在技術上釋放CGImage
?
我現在在我的應用程序中遇到內存問題,所以我需要確保我正確釋放這個CGImage
。
'sublayer'是視圖的圖層嗎? –
這是我如何設置子圖層:self.subLayer = [CALayer圖層]; – user3344977