微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

类型的值没有成员代表错误

如何解决类型的值没有成员代表错误

因此,我有以下代码段:

protocol AllFiltersButtonsprotocol: AnyObject{
  func didTapReset()
  func didTapApply()
}

class AllFiltersUberResetApplyTableViewCell: UITableViewCell {

  var delegate: AllFiltersButtonsprotocol?

  var leftButton: UIButton = {
    let leftButton = UIButton(.secondary,.large)
    leftButton.setTitle("Reset",for: .normal)
    leftButton.add(closureFor: .touchUpInside) { [self] in
      self.delegate.didTapReset()
    }
    return leftButton
  }()

但是我一直遇到以下错误

Value of type '(AllFiltersUberResetApplyTableViewCell) -> () -> AllFiltersUberResetApplyTableViewCell' has no member 'delegate 我的代码有什么问题?为什么在明显有成员的情况下说没有成员代表?

解决方法

leftButton将在UITableViewCell被完全初始化且self存在之前被初始化。因此,您不能在self内使用var leftButton: UIButton。尝试将其设置为lazy var,以确保仅在首次访问它时才调用它。

lazy var leftButton: UIButton = {
    let leftButton = UIButton(.secondary,.large)
    leftButton.setTitle("Reset",for: .normal)
    leftButton.add(closureFor: .touchUpInside) { [self] in
      self.delegate.didTapReset()
    }
    return leftButton
  }()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。