首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Swift中的CGImageRelease

Swift中的CGImageRelease
EN

Stack Overflow用户
提问于 2014-09-11 14:29:02
回答 2查看 8.6K关注 0票数 21

在Objc中,我在图像处理后使用CGImageRelease方法。但在Swift中,这种方法是不可用的。

Retaining and Releasing Images之后的苹果文档中有一个2 Objective-C symbols hidden

我的问题是,为什么在Swift中没有CGImageRelease?难道我们要调用另一种方法来取代它吗?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-11 14:32:11

CGImage现在由ARC管理。它不再需要CGImageRelease()。您可以通过查看CGImage.h并注意它包括宏CF_IMPLICIT_BRIDGING_ENABLED来了解这一点。这表明Apple对此文件进行了审核,以确保其符合内存管理命名约定,以便ARC能够存储从该文件中的函数返回的对象。

编辑:我读了这篇文章,意识到我是在误导。我并不是说CGImageRelease在ObjC中是不需要的(这就是我在这里所暗示的…)。我的意思是,由于审计,Swift能够处理这件事。在ObjC代码中,仍然需要释放这些对象。

票数 53
EN

Stack Overflow用户

发布于 2018-11-14 04:47:31

Swift中没有更多的CGImageRelease,也没有其他方法来替换它。

  • Swift只使用ARC,因此没有呼叫CFRelease或__bridge_retained的空间。
  • 对于从C函数返回的类型,我们可以调用takeRetainedValue() / takeUnretainedValue()来获得Swift托管的值。
  • 使用打开Clang arc_cf_code_audited的宏arc_cf_code_audited,Swift可以处理返回值的内存管理。

详细信息:https://nshipster.com/unmanaged/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25790128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档