我在Swift中有以下代码:
func cropToAlpha(image:CGImage) -> CGImage? {
let pixelDataProvider:CGDataProvider? = CGImageGetDataProvider(image)
if pixelDataProvider != nil {
let pixelData:CFData? = CGDataProviderCopyData(pixelDataProvider!)
Run Code Online (Sandbox Code Playgroud)
在对CGImageGetDataProvider文档和对CGDataProviderCopyData文档都表示,
您负责释放此对象
Swift编程指南讨论了取消初始化,但这与发布对象不同.
一些Objective-C答案(例如我如何在iOS中发布CGImageRef)建议调用CFRelease但是如果我尝试类似的话
CFRelease(pixelDataProvider)
Run Code Online (Sandbox Code Playgroud)
然后我得到编译器错误
'CFRelease'不可用:Core Foundation对象自动进行内存管理
如何通过在Swift中释放生成的对象来遵守CGImageGetDataProvider和CGDataProviderCopyData文档中的请求?
(NB搜索网页上的'Swift release'很棘手,因为搜索结果充斥着关于Swift版本的页面)
您不必释放它.该文档仍然针对Objective-C.编译器错误消息是正确的.
核心基础,从注释的API返回的对象是自动存储在管理斯威夫特,你不需要调用
CFRetain,CFRelease或CFAutorelease功能自己.
| 归档时间: |
|
| 查看次数: |
1017 次 |
| 最近记录: |