Ios iPhone内存问题

Ios iPhone内存问题,ios,cocoa-touch,memory-management,Ios,Cocoa Touch,Memory Management,我正在努力释放objective-C中的内存。我对它也是新手 请在下面找到示例代码。我必须做些什么来释放此代码: CGImageRef cgiRef = [uiiInputImage CGImage]; CGImageRef cgiNewRef = CGImageCreateWithImageInRect(cgiRef, cgrRegionInfo); uiiTargetTemp = [UIImage imageWithCGImage:cgiNewRef]; UIImag

我正在努力释放objective-C中的内存。我对它也是新手

请在下面找到示例代码。我必须做些什么来释放此代码:

   CGImageRef cgiRef = [uiiInputImage CGImage];
   CGImageRef cgiNewRef = CGImageCreateWithImageInRect(cgiRef, cgrRegionInfo);
   uiiTargetTemp = [UIImage imageWithCGImage:cgiNewRef];
   UIImage *uiiOutputImage = uiiTargetTemp;
   uiiTargetTemp = nil;

此外,我在哪里可以找到有关Objective-C中分配、分配和释放对象流程的文档,以准确回答您的问题:

CGImageRef cgiRef = [uiiInputImage CGImage];
CGImageRef cgiNewRef = CGImageCreateWithImageInRect(cgiRef, cgrRegionInfo);
uiiTargetTemp = [UIImage imageWithCGImage:cgiNewRef];
UIImage *uiiOutputImage = uiiTargetTemp;
uiiTargetTemp = nil;
CGImageRelease(cgiRef); //added

//....
//later on sometime you need to release the following
[uiiInputImage release];
[uiiOutputImage release];
CGImageRelease(cgiNewRef);
从这段代码来看,阅读Apple提供的初学者资源会让您受益匪浅。除了@Swapna提供的资源外,我还推荐和。一两本好书也无妨

您必须释放从CGImageCreateWithImageInRect接收到的内容,从而释放CGImageRelease

这是不完整的。我对imageWithCGImage返回的引用有一些疑问,我们是否应该发布它。文档对此不清楚

返回值

指定对象的新图像对象 石英图像,如果使用该方法,则为零 无法从初始化映像 指定的图像引用

讨论

此方法不缓存图像 对象您可以使用 核心图形框架创建一个 石英图像参考


…看到并讨论它。。是苹果公司关于内存管理的官方文档,教程很有帮助。

您可以在苹果公司提供的内存管理编程指南中找到文档。只需谷歌一下…
[uiiTargetTemp release]
就会过度发布
UIImage
实例,因为它是通过
imageWithCGImage
获得的,而这反过来应该已经提供了一个自动发布的实例。示例代码确实非常有用。
CGImageRef cgiRef = [uiiInputImage CGImage];
CGImageRef cgiNewRef = CGImageCreateWithImageInRect(cgiRef, cgrRegionInfo);
uiiTargetTemp = [UIImage imageWithCGImage:cgiNewRef];
UIImage *uiiOutputImage = uiiTargetTemp;
uiiTargetTemp = nil;
CGImageRelease(cgiNewRef);