CGImageRef cg = CGImage]; 需要CGImageRelease(cg)’?
我试图从iOS中的图像资源中读取ARGB像素。 为此,我需要一个CGImageRef
我可以用来获取它的CGDataProvider
。 我的问题是,如果我使用以下方法创建CGImageRef
:
CGImageRef cg = [[UIImage imageNamed: Path] CGImage];
我最终需要调用CGImageRelease(cg)
吗? 如果我不调用CGImageRelease
,我会有内存泄漏吗?
我遇到的另一个问题是第二次读取同一个文件会返回一个空图像,我怀疑这可能是因为我没有第一次调用CGImageRelease
。
只有在使用CGImageCreate
, Copy
或Retain
时才需要调用CGImageRelease
(或者任何与create,copy,retain相关的方法。例如: – CGBitmapContextCreateImage
)。 在这种情况下,您不必这样做,因为您没有进行任何创建,复制或保留。
不,CGImage将受限于UIImage的生命周期
遵循cocoa的’创建规则’:您只需要释放您拥有的内容(来自名为new *,copy *,retain返回所有权的方法中的对象)
另外,来自CF的任何对象遵循CF创建规则(仅来自名为Create *,Copy *,Retain的方法中的对象)
- UITableViewCell框架高度不匹配tableView:heightForRowAtIndexPath:
- 目标C中的全球财产
- isa指针在objective-c中
- 在iOS 6隐藏标签栏创build黑条(修复iOS 6中断iOS 7!)
- 单独重新加载单元格时,UITableViewCell内容会闪烁
- KVC setNilValueForKey:建议调用方法而不使用属性访问器
- 在多台设备上使用iCloud的EXC_BAD_ACCESS
- 使用unregisterForRemoteNotifications后,registerusernotificationsettings不起作用
- NSFetchedResultsController的transient属性的NSSortDescriptor