应用重新启动时,数组未保存。永久数据问题

时间:2019-04-15 18:02:15

标签: arrays swift save persistence

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

我尝试了userDefaults和核心数据。每次构建数组时,加载应用程序时数组都会开始为空。我不确定在哪里保存数组,以及通过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)
  }
}
}  

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

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

1 个答案:

答案 0 :(得分:0)

每次触发userSubmit(...)时,都会像您的示例一样检查selected的值,检查glucosReading.text中是否有一些Double数据,然后检索数组保存在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)")
       }
    }
}