我有一個變種如何實現只讀VAR與不同誘變得到
var soketTasksList:Set<SocketTask> {
get { return socketManager.tasksList }
}
我並不需要設置,只得到, 但我需要做這樣的事情
soketTasksList.remove(task)
但編譯器說
Cannot use mutating member on immutable value is a get-only property
我試圖添加關鍵字'mutating'的get,但這是行不通的。我也 試圖添加'變異'的變種,但這也不工作。
UPD 我不知道爲什麼我需要設置? 如果我做
func getSoketTasksList() -> Set<CXSocketTask> {
return socketManager.tasksList
}
我可以
getSoketTasksList().remove(task)
爲什麼不使用var?
但它不會是隻讀的,我不需要做設置,我需要從我的var變異結果 –
您的tasksList聲明爲可變嗎? – gagarwal
如果沒有setter方法,只讀計算屬性不能突變。即使你不需要改變持有列表的變量,它也會無意中使列表不可變。 –