objective-c - 如何自动释放 CGImageRef?

标签 objective-c foundation

我有一个返回 CGImageRef 对象的方法。它包含这个调用:

CGImageRef posterFrame = [avAssetImage copyCGImageAtTime:time actualTime:nil error:&error];
...
return posterFrame;

据我了解,这种情况需要自动释放。但我不知道该怎么做。我试过使用 CFCollectable(),但它不起作用。有什么想法吗?

最佳答案

如果您正在使用垃圾回收,请使用 CFMakeCollectable(posterFrame)。如果您使用的是传统内存管理,则非常简单:

return (CGImageRef)[(id)posterFrame autorelease];

您将 CFTypeRef(在本例中为 CGImageRef)转换为 Objective-C 对象指针,向其发送 -autorelease 消息,然后将结果转换回 CGImageRef。此模式适用于(几乎)任何与 CFRetain()CFRelease() 兼容的类型。

关于objective-c - 如何自动释放 CGImageRef?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7061149/

相关文章:

objective-c - 在 Objective C 中画饼图

ios - 如何将 UIImageView 放置在 Storyboard 中另一个 View 的一半

ios - 不同框架之间可以使用NSNotificationCenter进行通信吗?

ios - UIScrollView 委托(delegate)属性无法正常工作

objective-c - launchd 终止进程时是否调用了 XPC 中断处理程序?

objective-c - 我可以将同一个对象添加到两个不同的数组吗?

objective-c - 静态内联函数调用之间静态变量的地址变化

ios - 使用(Int,Int)元组案例在Swift switch语句中获取 "Binary operator ~= cannot be applied to two (Int, Int) operands"

objective-c - 在 NSClassFromString() 返回的类上调用类方法

ios - 将集合与内部数组进行比较