If I use [UIImage imageWithCGImage:]
, passing in a CGImageRef
, do I then release the CGImageRef
or does UIImage take care of this itself when it is deallocated?
The documentation isn't entirely clear. It says "This method does not cache the image object."
Originally I called CGImageRelease
on the CGImageRef after passing it to imageWithCGImage:
, but that caused a malloc_error_break
warning in the Simulator claiming a double-free was occurring.
I agree with you -- the documentation is muddled at best for this API. Based on your experiences, then, I would conclude that you are responsible for the lifetime of both objects - the UIImage
and the CGImageRef
. On top of that you have to make sure the lifetime of the CGImageRef
is at least as long as the UIImage
(for obvious reasons).