我正在尝试将计算属性用作Array对象,如下所示:
var arrayComputed: [String] {
get {
...
}
set(newValue) {
...
}
}
但是,现在我正在尝试在计算数组中设置值,我不知道应该如何实现它。我的setter设置假设它被赋予一个完整的数组来存储,但如果它被设置为这样呢?
arrayComputed[4] = "Some string"
这甚至会如何表现?
答案 0 :(得分:0)
我做了一些挖掘并找到了解决方案。在计算数组属性上使用下标设置提供包含原始数组的newValue
,但根据使用的下标更改相关索引。举例说明:
var actualArray: [String] = []
var computedArray: [String] {
get {
return actualArray
}
set(setTo) {
actualArray = setTo
}
}
computedArray.append("Hello")
computedArray.append("Matt")
computedArray.append("World")
// computedArray and actualArray are now both ["Hello", "Matt", "World"]
computedArray[1] = "Jacob"
// computedArray and actualArray are now both ["Hello", "Jacob", "World"]