gpt4 book ai didi

ios - Swift:如何通过委托(delegate)使用属性观察器

转载 作者:搜寻专家 更新时间:2023-11-01 06:47:53 26 4
gpt4 key购买 nike

我正在尝试同时使用委托(delegate)和属性观察器来了解属性何时更改。我设置了协议(protocol),但不确定如何使用属性观察器。

我有一个名为 GridView 的类,它被添加到 DetailViewController 中。 GridView 有一个称为 rowValues 的整数数组。我想从 DetailViewController 观察 rowValues。

GridView .swift

protocol gridViewDelegate {
func rowValueChanged(value: [Int])
}

class GridView: UIView {

var rowValues = [0,0,0,0,0]
var delegate: gridViewDelegate?

func updateRowValue() {
rowValues[0] = 1
}
}

DetailViewController.swift

class DetailViewController: UIViewController, gridViewDelegate {

override func viewDidLoad() {
super.viewDidLoad()

var grid = GridView(frame: view.frame)
grid.delegate = self
view.addSubview(grid)
}

func rowValueChanged(value: [Int]) {
println(value)
}
}

最佳答案

可能这就是您正在寻找的语法:

class GridView: UIView {

var rowValues: [Int] = [0,0,0,0,0] {
didSet {
if let theDelegate = self.delegate {
theDelegate.rowValueChanged(rowValues)
}
}
}
var delegate: gridViewDelegate?

}

关于ios - Swift:如何通过委托(delegate)使用属性观察器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28082490/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com