Swift:CGPathRelease和ARC

Epi*_*yte 8 memory-management core-foundation ios automatic-ref-counting swift

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

var path = CGPathCreateMutable()
...
CGPathRelease(path)
Run Code Online (Sandbox Code Playgroud)

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

所以,我只是删除我的发布电话,一切都应该没问题?还是有更多我想念的东西?ARC有什么特殊情况需要注意吗?

jtb*_*des 20

与可可数据类型工作的部分用斯威夫特与可可和Objective-C说(重点煤矿):

核心Foundation对象从注释的API返回的自动内存管理Swift- 你不需要调用CFRetain,CFReleaseCFAutorelease功能自己.如果返回的Core Foundation从自己的C函数和Objective-C方法的对象,标注他们用两种CF_RETURNS_RETAINEDCF_RETURNS_NOT_RETAINED.

...

当Swift导入尚未注释的API时,编译器无法自动内存管理返回的Core Foundation对象.Swift将这些返回的Core Foundation对象包装在一个Unmanaged<T>结构中.

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