如何解决类型的值没有成员代表错误
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 举报,一经查实,本站将立刻删除。