【问题标题】:save tableview data in swift MVC (Swift)在 swift MVC (Swift) 中保存 tableview 数据
【发布时间】:2018-09-07 09:55:09
【问题描述】:

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")
  }
}

【问题讨论】:

  • 您的问题具有误导性。请澄清一下
  • 什么错误。你有吗?
  • @Sergiob 我如何在 UserDefaults 中保存这个日期?
  • @Lenin App 在启动时崩溃
  • UserDefaults 有保存日期的方法

标签: ios swift xcode model-view-controller


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-10
    • 2017-04-05
    • 2018-06-10
    • 2021-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多