我正在尝试保存一个数组,但每当我重新加载应用程序时,该数组都是空的。
我已经尝试过 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)
}
}
}
我希望能够在应用程序重新启动时保存数组,而不是每次加载应用程序时都让数组开始为空。我的问题可能是我不知道将数组保存到哪里,或者如何保存。
我希望能够在应用程序重新启动时保存数组,而不是每次加载应用程序时都让数组开始为空。
最佳答案
每次 userSubmit(...)
将被触发时,它将检查 selected
的值,如您的示例所示,检查是否有一些 Double 数据在 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)")
}
}
}
关于arrays - 当应用程序重新启动时,数组不会保存。持久数据的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55694914/