如何在swift中本地保存数组?
我有一个数组在我的应用程序中,每次它会向用户显示一个随机字符串。当字符串被显示后,它就从数组中删除。我的问题是,每当用户退出应用并重新启动时,我的数组就重新开始了;我无法恢复用户退出应用之前的数组。
我有一个数组在我的应用程序中,每次它会向用户显示一个随机字符串。当字符串被显示后,它就从数组中删除。我的问题是,每当用户退出应用并重新启动时,我的数组就重新开始了;我无法恢复用户退出应用之前的数组。
编辑/更新:
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)
}