如何在Swift中本地保存数组

4
如何在swift中本地保存数组?
我有一个数组在我的应用程序中,每次它会向用户显示一个随机字符串。当字符串被显示后,它就从数组中删除。我的问题是,每当用户退出应用并重新启动时,我的数组就重新开始了;我无法恢复用户退出应用之前的数组。
1个回答

4

编辑/更新:

let strings = ["abc", "def", "ghi"]
do {
    let documentsDirectory = try FileManager.default.url(for: .documentDirectory,
                                                         in: .userDomainMask,
                                                         appropriateFor: nil,
                                                         create: true)
    let fileURL = documentsDirectory.appendingPathComponent("array.plist")
    // Saving to disk
    try NSKeyedArchiver.archivedData(withRootObject: strings,
                                     requiringSecureCoding: false)
    .write(to: fileURL,
           options: .atomic)
    print("successfully saved to file url", fileURL.path)
    
    // Loading from disk
    if let loadedArray = try NSKeyedUnarchiver
        .unarchiveTopLevelObjectWithData(Data(contentsOf: fileURL)) as? [String] {
        print("loadedArray:", loadedArray) // "[abc, def, ghi]"
    }
} catch {
    print(error)
}

或者如果您想使用UserDefaults(请注意,UserDefaults不适用于保存应用程序数据,它只应该用于保留应用程序设置/状态):

UserDefaults.standard.set(array, forKey: "array")

if let loadedArray = UserDefaults.standard.stringArray(forKey: "myarray") {
    print(loadedArray)
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接