在 UserDefaults 中保存项目数组 - iOS 12
Save array of items in UserDefaults - iOS 12
我想在 UserDefaults 中保存一个 TreeWithPos
对象数组。我发现的每个解决方案(如数据对象)在 iOS 12 中都不起作用。
我能做什么?
我试过这个:
try? defaults.set(NSKeyedArchiver.archivedData(withRootObject: treesArr, requiringSecureCoding: false), forKey: "trees")
您可以尝试将 Codable
协议与 JSONEncoder()
& JSONDecoder()
一起使用
struct SaveItem : Codable {
var name:String
}
//
let arr = [SaveItem(name: "name1"),SaveItem(name: "name2")]
do {
// write
var data = try JSONEncoder().encode(arr)
UserDefaults.standard.set(data, forKey: "Key")
// read
let content = UserDefaults.standard.data(forKey: "Key")
let saved = try JSONDecoder().decode([SaveItem].self, from: content!)
print(saved)
}
catch {
print(error)
}
我想在 UserDefaults 中保存一个 TreeWithPos
对象数组。我发现的每个解决方案(如数据对象)在 iOS 12 中都不起作用。
我能做什么?
我试过这个:
try? defaults.set(NSKeyedArchiver.archivedData(withRootObject: treesArr, requiringSecureCoding: false), forKey: "trees")
您可以尝试将 Codable
协议与 JSONEncoder()
& JSONDecoder()
struct SaveItem : Codable {
var name:String
}
//
let arr = [SaveItem(name: "name1"),SaveItem(name: "name2")]
do {
// write
var data = try JSONEncoder().encode(arr)
UserDefaults.standard.set(data, forKey: "Key")
// read
let content = UserDefaults.standard.data(forKey: "Key")
let saved = try JSONDecoder().decode([SaveItem].self, from: content!)
print(saved)
}
catch {
print(error)
}