[英]Add weak reference to assigned Closure in Swift?
我有以下关闭:
class BISSettingController : XLFormViewController {
class func initializeForm() -> XLFormDescriptor {
var form : XLFormDescriptor
var section : XLFormSectionDescriptor
var row : XLFormRowDescriptor
form = XLFormDescriptor()
row = XLFormRowDescriptor(tag: "tag", rowType: XLFormRowDescriptorTypeButton, title: "Title")
row.action.formBlock = {[weak self](sender: XLFormRowDescriptor!) -> Void in
self?.deselectFormRow(sender)
...
}
}
}
我想在封闭内部使用self
作为弱引用。 但是,当我构建代码时,出现以下错误:
'weak' cannot be applied to non-class type 'BISSettingController.Type'
我该如何解决才能使其正常工作?
问题在于这是一个类方法( class func
)。 在类方法中, self
表示类 。 不需要在代表类的self
上进行内存管理; 该类不能“泄漏”,因为它在应用程序的整个生命周期中都会持续存在。 因此,您不能将对类的引用描述为weak
。
根据收到的错误消息,听起来self本身不是对象,因此根本不需要访问列表。
您可以在包含此代码的对象上发布更多信息吗?
查看更新的问题,似乎您正在使用的代码在类方法中,而不是实例方法中。 但是,从类方法来看,该代码似乎没有任何意义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.