首页 > 解决方案 > 防止在闭包的参数上保留/释放快速关闭?

问题描述

我有以下行:

if let obj = renderGroup.objects.first(where: {$0.elementId == elementId}) {

这条线被调用了很多,整个操作花费的时间太长,所以我开始分析它。我注意到超过一半的时间都花在了swift_retainandswift_release上,全部都在这一行上。elementId都是一个Int64,但是$0是一个类(因此是引用类型)。所以似乎保留和释放用于$0参数。

这似乎不是很有用,因为参数将在first()调用的整个生命周期内始终存在。

有没有办法阻止对参数的所有保留和释放调用?

标签: swiftclosuresautomatic-ref-counting

解决方案


推荐阅读