我在更改陣列中字典的值時遇到問題
var array = (defaults.array(forKey: "Transactions")! as! [Dictionary<String, Any>])
(array.reversed()[index]["Title"] as! String) = titleTextField.text! // Cannot assign to immutable expression of type 'String'
無法分配給“字串”型別的不可變運算式
這是我回來的錯誤
這個問題有解決方案嗎?
uj5u.com熱心網友回復:
正如 Joakim 指出的,array.reversed() 回傳一個不可變的陣列。
嘗試這個:
guard
var array = (defaults.array(forKey: "Transactions")! as? [Dictionary<String, Any>]),
let newText = titletextfield.text,
array[array.count-index]["Title"] = newText
(然后將您的陣列重新保存到 UserDefaults)
uj5u.com熱心網友回復:
再多走一步
if var array = UserDefaults.standard.array(forKey: "Transactions") as? [Dictionary<String, Any>], let valueText = titleTextField.text {
array.reverse()
array[index]["Title"] = valueText
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/344248.html
