在Swift中,我注意到没有@autoreleasepool{}构造,尽管Swift确实使用ARC.在Swift中管理自动释放池的正确方法是什么,或者它是否因某种原因被删除?

推荐答案

语法如下:

autoreleasepool {
  /* code */ 
}

不幸的是,苹果的WWDC 2014视频似乎不再可用.如果它回来了,WWDC 2014年会议视频418"用仪器改进你的应用程序"中会介绍它.

swift documentation目前没有任何有用的东西.但是你可以在NSAutoreleasePoolAdvanced Memory Management Programming Guide的Obj-C运行时参考中找到很多好的信息.

101 Auto Release Pools are no-longer as relevant today as they were in the past. Modern code should use Automatic Reference Counting which does not use release pools at all. However there's still a lot of legacy code, including in Apple's frameworks, that use auto release pools as of 2021. If you're doing any kind of batch process on images as one example, you probably should be using an 100 block.

Swift相关问答推荐

Swift:连接两个数组而不重复共享后缀/前缀

符合协议要求委托变量在 ios13 中可用

如何有条件地格式化 SwiftUI 代码

Swift在十进制格式中失去精度

如何在 SwiftUI 中为删除和禁用配置 ContextMenu 按钮?

iPhone 不可用.请重新连接设备. / iOS 14.2 - Xcode 12.1

新项目的 SwiftUI 2.0 CoreData 问题 - '在范围内找不到类型'项目''

如何在 SwiftUI 中实现 PageView?

SwiftUI 中 ObservedObject 和 StateObject 有什么区别

相当于在 Swift Combine 中使用 @Published 计算的属性?

SwiftUI:如何弹出到根视图

Swift 中的单元测试致命错误

在 Swift 中访问类中的静态变量

在回调中以编程方式推送视图,SwiftUI

无法从构建环境获取 Google 服务文件中的 GOOGLE_APP_ID

SwiftUI 使用 ForEach 遍历字典

根据禁用与否更改 SwiftUI 中按钮的 colored颜色

SwiftUI:可以从任何视图触发的全局叠加层

Xcode 构建错误 - 多个命令生成 .o,目标“ProjectCoreData”具有两次列出的 Swift 源文件的编译命令

Swift 4 中默认情况下的可编码枚举