簡體   English   中英

無法將用戶制作的數組保存到UserDefaults

[英]Unable to save user made Array to UserDefaults

我正在制作第一個具有待辦事項清單的應用程序。 列表項存儲在數組中並顯示在“表視圖”中,但是在關閉應用程序時,這些項不再存在。 我嘗試使用“用戶默認設置”保存項目,但到目前為止尚未奏效。 我究竟做錯了什么? 我正在嘗試使用保存數據的按鈕。

///button to save the data
 @IBAction func savelist(_ sender: Any) {

    let defaults = UserDefaults.standard
    defaults.set(list, forKey: "SavedArray")
    myTableView.reloadData()
}
//// retrieving the data
 override func viewDidLoad()
{
    super.viewDidLoad()
    let defaults = UserDefaults.standard
    let array = defaults.stringArray(forKey: "SavedArray") ?? [String]()
    myTableView.reloadData()

}

我也這樣做了,所以當我按下保存按鈕時,該數組將被打印到控制台上,這樣我就知道這些項目正在添加到該數組中。 問題是我無法保存這些項目。 謝謝!

我解決了這個問題:我的數組叫做列表,但是,在關閉我正在使用的應用程序后檢索數據時

let array = defaults.stringArray(forKey: "SavedArray") ?? [String]()

所以我將其更改為:

 list = defaults.stringArray(forKey: "SavedArray") ?? [String]()

我還添加了以前答案的建議。 我將默認值設置為全局變量,並添加了

        defaults.synchronize()

按鈕動作

您的問題似乎不是要檢索字符串數組,而是將元素添加到數組中。

如果還沒有定義為[String],請考慮定義列表:

    var list = [String]()

如果要向數組添加元素,請使用以下命令:

    list.append(txtField.text!)

希望這能解決您的問題。 祝好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM