审查这段生成的仪表盘绑定代码,检查生命周期安全以及重复绑定行为。
把控制器绑定到数据源。任一对象释放后都应安全停止刷新;重新绑定必须断开旧数据源,而且对象关系不能成环。
swift
final class DataSource {
var onChange: (() -> Void)?
func load() -> [String] { ["open", "closed"] }
}
final class DashboardController {
var rows: [String] = []
var refreshHandler: (() -> Void)?
func bind(to source: DataSource) {
refreshHandler = { [unowned self] in
self.rows = source.load()
print("rows", self.rows.count)
}
source.onChange = self.refresh
}
func refresh() {
refreshHandler?()
}
}
生成代码仅作示例,不代表任何特定模型