Swift:CGPathRelease和ARC

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

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

“CGPathRelease”不可用:核心基础对象会自动进行内存pipe理

所以我只是简单地删除我的发布呼叫,一切都应该罚款? 还是有更多我失踪? 有什么特殊情况我应该知道与ARC?

使用Swift与Cocoa和Objective-C的 cocoa数据types部分的工作 (重点是我的)说:

从注释的API返回的Core Foundation对象在Swift中自动进行内存pipe理 – 您不需要自己调用CFRetainCFReleaseCFAutorelease函数 。 如果从您自己的C函数和Objective-C方法返回Core Foundation对象,请使用CF_RETURNS_RETAINEDCF_RETURNS_NOT_RETAINED 对其进行注释

当Swift导入尚未注释的API时,编译器将无法自动memory management返回的Core Foundation对象。 Swift将这些返回的Core Foundation对象封装在Unmanaged<T>结构中

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

正如接受的答案所说: 是的,你根本不需要CGPathRelease


注意:如果您在代码中使用了Unmanaged<T> ,请检查接受的答案 。