【发布时间】:2018-03-18 18:41:56
【问题描述】:
在回答How do I know if a value of an element inside an array was changed?的问题时受到启发,答案是使用Property Observer来检查数组是否被修改。
但是,如何确定属性观察器中集合类型中的更新元素是什么?例如:
class MyClass {
var strings: [String] = ["hello", "world", "!"] {
didSet(modifiedStrings) {
print("strings array has been modified!!:")
print(modifiedStrings)
}
}
}
let myClass = MyClass()
myClass.strings.append("a string")
myClass.strings[0] = "Hello"
myClass.strings.removeLast()
请注意didSet 代码已为每个添加、更新或删除操作调用,但我如何才能确切知道受影响的元素是什么?有没有办法通过将strings 数组标记为 Property Observer 来实现这一点?
我在询问 Swift 中的所有集合类型,因为我认为它们应该是相同的行为,它是关于观察的。
谢谢。
【问题讨论】:
标签: arrays swift dictionary set property-observer