更新iOS使用更多数组数据存储的数据



我有一个列表视图,该视图收集了用户输入表单的一些数据。

我打算有一个选项让用户点击列表项目,并记录他们单击的日期。因此,我创建了一个Nscoding版本,看起来像以下版本。

class Item: NSObject, NSCoding {
    var uuid: String = NSUUID().uuidString
    var name: String = ""
    var days: [ NSDate ]?
    func encode(with coder: NSCoder) {
        coder.encode(uuid, forKey: "uuid")
        coder.encode(name, forKey: "name")
        coder.encode(days, forKey: "days")
    }
    required init?(coder aDecoder: NSCoder) {
        super.init()
        if let archivedUuid = aDecoder.decodeObject(forKey: "uuid") as? String {
            uuid = archivedUuid
        }
        if let archivedName = aDecoder.decodeObject(forKey: "name") as? String {
            name = archivedName
        }
        if let archivedDays = aDecoder.decodeObject(forKey: "days") as? [ NSDate ] {
            var getDays = archivedDays
        }
    }
    init(name: String, days: [NSDate]) {
        self.days = days
        self.name = name
        super.init()
    }
}

我想检索当前的天数,这将是一个数组,然后将另一个日期添加到此数组的末尾。我不确定如何检索这些数据并通过向其添加更多信息来更新数组。

我知道如何替换数据,但不使用NScoding更新数据或将其附加更多。我该怎么做?

对于任何想知道如何执行此操作的人(即更新数组以添加更多日期) - 您只需要这样做即可。在我的示例中,当有人单击列表中的项目时,我正在添加更多日期,所以我这样做了 -

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        let cell:UITableViewCell = tableGet.cellForRow(at: indexPath as IndexPath) as! UITableViewCell
        let cellID   = cell.tag
        if let filePath = pathForItems() {
            if (NSKeyedUnarchiver.unarchiveObject(withFile: filePath) as? [Item]) != nil {
                let clickedItem = items[cellID] as? Item
                let days = clickedItem?.days ?? []
                let date = [ Date() ]
                let combinedDays = date + days
                clickedItem?.days = combinedDays
                print(clickedItem?.days)
                NSKeyedArchiver.archiveRootObject(items, toFile: filePath)
            }
        }
    }

本质上是没有nskeyedunarchiver的我的数据,从该数据中获取数组,然后将更多的数组添加到该特定数组中。将其全部备份,然后将其张贴回存储中。

实际上不是太硬。

相关内容

  • 没有找到相关文章

最新更新