Swift: CGPathRelease and ARC



刚刚更新到Xcode Beta 4,注意到下面的代码编译错误:

var path = CGPathCreateMutable()
...
CGPathRelease(path)

'CGPathRelease'不可用:Core Foundation对象不可用自动内存管理

所以我只是简单地删除我的释放调用,一切都应该很好吗?还是我还错过了什么?关于ARC有什么特殊的情况需要我注意吗?

Using Swift with Cocoa and Objective-C的使用Cocoa数据类型一节说(强调我的):

带注释的api返回的Core Foundation对象在Swift - 中自动进行内存管理,您不需要自己调用CFRetain, CFReleaseCFAutorelease函数。如果你从自己的C函数和Objective-C方法返回Core Foundation对象,CF_RETURNS_RETAINEDCF_RETURNS_NOT_RETAINED注释它们

当Swift导入没有注解的api时,编译器不能自动管理返回的Core Foundation对象的内存。Swift将这些返回的Core Foundation对象封装在一个 Unmanaged<T>结构体中。

所以,是的,除非你有一个Unmanaged结构体,这是正确的,你不必担心手动释放对象

最新更新