繁体   English   中英

在Swift中为分配的闭包添加弱引用?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM