我试图在我的类ChooserListVC中为“列表”添加一个属性观察器

这些是我想跟踪的ChooserSaves中的变量。

class ChooserSaves: UIDocument {
var savedListObject : SavedList?
var listName : String = ""
var chooserItems : [String] = []
}

我不确定如何在我正在实现的类中进行设置。
class ChooserListVC: UIViewController, UITableViewDelegate, UITableViewDataSource,UITextFieldDelegate{
var list : ChooserSaves!

我试图做这样的事情:
var list : ChooserSaves!{
    didSet{
        if chooserItems.count > 0{
            println("didset greater than 1")
        }
        else{
            println("didset less than 1")
        }
    }
}

但这仅在segue分配列表时起作用。我该如何做,以便每次我在其他代码位中更改list.chooserItems时,都会触发正确的行?

最佳答案

最简单的解决方案是将您要观察的属性设置为 private ,并创建可公开使用的方法来操作数组。

...
private var chooserItems: [String] = []
...
func add(chooserItem: String){
    // your tracking logic here

    // update your private array
    self.chooserItems.append(chooserItem)
    ...
}
...

如果您需要真正的观察,我建议您查看此答案Is key-value observation (KVO) available in Swift?

关于ios - Swift与对象的属性观察器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32060152/

10-15 03:02