gpt4 book ai didi

ios - 在 swift MVC (Swift) 中保存 TableView 数据

转载 作者:行者123 更新时间:2023-11-28 14:54:18 26 4
gpt4 key购买 nike

如何在swift MVC中保存tableview数据?

如何将数据保存在另一个 ViewController 的表中?

我有一个名为 ToDoItem 的自定义类。

func save() {
let encodedData: Data = NSKeyedArchiver.archivedData(withRootObject: ToDoItem.self)
UserDefaults.standard.set(encodedData, forKey: "todosave")
UserDefaults.standard.synchronize()
}
//
func load() {
if let decoded = UserDefaults.standard.object(forKey: "todosave") {
let _ = NSKeyedUnarchiver.unarchiveObject(with: decoded as! Data) as! [ToDoItem]
}
}

我尝试使用 NSUserDefaults 保存它,但出现错误。

ToDoItem.swift

import Foundation

class ToDoItem: NSObject, NSCoding {

var id: String
var image: String
var title: String
var date: Date
init(id: String, image: String, title: String, date: Date) {
self.id = id
self.image = image
self.title = title
self.date = date
}

required convenience init(coder aDecoder: NSCoder) {
let id = aDecoder.decodeObject(forKey: "id") as! String
let image = aDecoder.decodeObject(forKey: "image") as! String
let title = aDecoder.decodeObject(forKey: "title") as! String
let date = aDecoder.decodeObject(forKey: "date") as! Date
self.init(id: id, image: image, title: title, date: date)
}

func encode(with aCoder: NSCoder) {
aCoder.encode(id, forKey: "id")
aCoder.encode(image, forKey: "image")
aCoder.encode(title, forKey: "title")
aCoder.encode(date, forKey: "date")
}
}

最佳答案

我建议使用 Object Mapper,然后您可以将对象转换为 JSON,转换后您可以像往常一样使用 Any 类型将其保存到用户默认值。然后,为了加载数据,您将之前保存的用户默认键中的数据映射到您的 TODOItem。

ObjectMapper 的链接:https://github.com/Hearst-DD/ObjectMapper您也可以使用此库将不同的 JSON 映射到您想要的对象

关于ios - 在 swift MVC (Swift) 中保存 TableView 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49539157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com