在Objc中,我在对图像进行处理后使用CGImageRelease
方法。但是在Swift中,这种方法不可用。
在Apple的文档中,在保留和释放图像
之后,有一个2个Objective-C符号隐藏
我的问题是,为什么Swift中没有CGImageRelease
了?我们是否需要调用其他方法来替换它?
谢谢!
CGImage
现在由ARC管理。不再需要使用CGImageRelease()
函数。您可以通过查看CGImage.h并注意到它包括宏CF_IMPLICIT_BRIDGING_ENABLED
来了解此信息。这表明,苹果公司已经审核了此文件,以确保它符合内存管理命名约定,从而使ARC能够内存管理从该文件中返回的对象。
编辑:我重新阅读了一下这个内容,发现我有误导之嫌。我的意思并不是说在ObjC中不需要CGImageRelease
函数(这基本上是我在这里暗示的...),我只是想说因为经过了审核,所以Swift可以处理它。在ObjC代码中,您仍然需要释放这些对象。
struct
中。将ARC管理的元素作为void*
传递也很棘手。苹果公司的重点是Swift,我怀疑他们会花很多时间来增强C语言。他们可能会倾向于将时间花在改进Swift上,以替代您在C中所做的任何事情。 - Rob Napier