【发布时间】:2017-01-04 05:44:52
【问题描述】:
假设我有一个数组:
var intArray: [Int] = [1,2,3,4,5] {
didSet{
//print index of value that was modified
}
}
如果我执行intArray[2] = 10,我可以在didSet 中写入什么来打印修改值的索引(在这种情况下为2)?
【问题讨论】:
-
这是不可能的,
didSet只能获取 newValue(array) 和 oldValue(array)。 -
真的吗?有什么解决方法吗?
-
没有内置的 Swift 方法可以做到这一点,尽管您可以编写这样的自定义解决方案:stackoverflow.com/a/27675375/6658553
-
@Daniel 您可以为
Array编写一个包装器,它转发所有方法调用,但根据需要截取索引 -
@nathan answer 让我满意 :) 不完全是我需要的,但我的程序很相似,我可以轻松调整我的代码