我旁邊繼承:協議的斯威夫特數組類型的對象
protocol P {
var a : Int { get set }
}
class C : P {
var a : Int
...
}
然後我想創建廣義陣列,並通過它與一些動作重複:
class Main {
var array : Array<Proto>
var inst : Proto
...
func foo() {
array.append(C(a:10))
for obj in array {
obj.a = 20 //Error: Cannot assign to the result of this expression
}
inst = C(a:10)
inst.a = 20 //Works correctly
for var i = 0; i < arr.count; ++i {
inst = arr[i]
inst.a = 20 //No problem even here
}
}
}
如果我投:(OBJ作爲C).a = 20 - 那麼一切都很好。 有人可以解釋這種行爲嗎?
這不是一個好的答案。最好確保我們有一個班級類型。這個甚至不會崩潰。 – Sulthan