当应用程序重新启动时,阵列未保存.持久性数据出现问题



我正在尝试保存一个数组,每当我重新加载应用程序时,数组都是空的。

我已经尝试过用户默认值和核心数据。每次构建数组时,当我加载应用程序时,它都会从空开始。我不确定将阵列保存在哪里,以及通过 IBAction 添加到阵列是否会导致问题

firstArray: [Double] = []
@IBAction func userSubmit(_ sender: Any) {
oneArray()
func oneArray(){
if selected == "Breakfast" {

if let firstArrays = Double(glucoseReading.text!) {
//append new element to  Array
firstArray.append(firstArrays)
print(breakfastSugarsArray)
}
}
}  

我希望能够在应用程序重新启动时保存数组,而不是每次加载应用程序时都让数组开始为空。我的问题可能是我不知道在哪里保存数组,或者如何做。

我希望能够在应用程序重新启动时保存数组,而不是每次加载应用程序时都让数组开始为空。

每次触发userSubmit(...)时,它都会检查selected的值,如您的示例所示,检查glucosReading.text中是否有一些双精度数据,然后检索保存在 UserDefault 中的数组并使用新值更新它。

@IBAction func userSubmit(_ sender: Any) {    
if selected == "Breakfast" {
if let glucoseData = Double(glucoseReading.text!) {
// retrieve from UserDefault if none create an empty array
let glucoseListData = UserDefaults.standard.array(forKey: "glucoseListData") as? [Double] ?? [Double]()
// store in UserDefault
glucoseListData.append(glucoseData)
UserDefaults.standard.set(glucoseListData, forKey: "glucoseListData")
// check print outputs in Xcode logs
println("Glucose data list: (glucoseListData)")
}
}
}

最新更新