在Swift中,我注意到没有@autoreleasepool{}
构造,尽管Swift确实使用了ARC。在Swift中管理自动释放池的正确方式是什么,还是出于某种原因已将其删除?
发布于 2015-01-05 06:17:15
仅供参考,Xcode构建了完整代码,如下所示:
autoreleasepool({ () -> () in
// code
})
猜想圆括号标识了函数闭包。
发布于 2014-06-11 06:48:54
的确有!只是在任何地方都没有真正提到它。
autoreleasepool {
Do things....
}
发布于 2020-03-20 20:48:08
我在代码中使用了这种结构。此函数用于从视频URL创建缩略图。
func getThumbnailImage(forUrl url: URL) -> UIImage? {
return autoreleasepool{ () -> UIImage in
let asset: AVAsset = AVAsset(url: url)
let imageGenerator = AVAssetImageGenerator(asset: asset)
var thumbnailImage: CGImage?
do {
thumbnailImage = try imageGenerator.copyCGImage(at: CMTimeMake(value: 1, timescale: 60) , actualTime: nil)
return UIImage(cgImage: thumbnailImage!)
} catch let error {
print(error)
}
return UIImage(cgImage: thumbnailImage!)
}
}
https://stackoverflow.com/questions/24152050
复制相似问题