sublayer
이라는 CALayer
객체가 있습니다. 내보기 컨트롤러의 헤더 파일에 속성을 만들었 기 때문에 내보기 컨트롤러 전체에서 self.sublayer
으로 사용합니다.CALayer의 contents 속성에 포함 된 CGImage를 해제해야합니다.
self.subLayer.contents = (id)[UIImage imageWithCGImage:imageRef].CGImage;
은 그때 지금은 하위 계층을 만드는 데 사용 된 것을 바로 imageRef
객체를 해제 :
은 내가 CGImageRef
객체가 imageRef
라고 사용하여 생성되는 UIImage
객체에 동일 계층의 내용의 속성을 설정 더 이상 필요하지 않습니다.
CGImageRelease(imageRef);
그러나 여기에 무엇이 나를 괴롭 히고 있습니다. 나중에 코드에서 더 이상 self.sublayer.contents
이 필요하며 제대로 포함 된 CGImage
을 릴리스하고 싶습니다. 내가 self.sublayer.contents
NSLog 경우
는 콘솔에이 인쇄됩니다 :
<CGImage 0x146537c0>
그래서 나는이 CGImage
뿐만 아니라 해제 할 수 있어야합니다.
은 내가 CGImage
을 해제하려면이 옵션을 사용하려고했으나 NSLog는 여전히 콘솔에 같은 출력 :이 사용하는 경우
CGImageRelease((__bridge CGImageRef)(self.subLayer.contents));
에서, NSLog가 (null)
으로 콘솔에 인쇄됩니다,하지만 난 걱정 이 기술적으로 공개되지 않는 CGImage
:
self.subLayer.contents = nil;
제대로 CGImage
을 해제하거나 내가 t에 수정이다 nil
에 하위 계층의 내용 속성을 설정 하는가 기술적으로는 CGImage
을 공개하지 않는다고 생각하니?
지금 내 앱에 메모리 문제가 발생하므로이 코드를 CGImage
에 올바르게 출시해야합니다.
'하위 레이어 '는보기의 레이어입니까? –
이것은 하위 레이어를 설정하는 방법입니다. self.subLayer = [CALayer layer]; – user3344977