【发布时间】:2016-07-20 00:15:44
【问题描述】:
我在 Swift 中有以下代码:
func cropToAlpha(image:CGImage) -> CGImage? {
let pixelDataProvider:CGDataProvider? = CGImageGetDataProvider(image)
if pixelDataProvider != nil {
let pixelData:CFData? = CGDataProviderCopyData(pixelDataProvider!)
documentation for CGImageGetDataProvider 和 documentation for CGDataProviderCopyData 都说
你有责任释放这个对象
Swift 编程指南谈到了deinitialization,但这与释放对象不同。
一些 Objective-C 的答案(例如How do I release a CGImageRef in iOS)建议调用CFRelease,但如果我尝试类似
CFRelease(pixelDataProvider)
然后我得到编译器错误
'CFRelease' 不可用:Core Foundation 对象自动进行内存管理
如何通过在 Swift 中释放生成的对象来满足 CGImageGetDataProvider 和 CGDataProviderCopyData 文档中的请求?
(注意,在网上搜索“Swift release”很棘手,因为搜索结果中充斥着有关 Swift 版本的页面)
【问题讨论】:
标签: swift