Swift encode tuple using NSCoding

后端 未结 2 659
陌清茗
陌清茗 2020-12-18 00:20

Is it possible to store a tuple using NSCoding? I have a tuple like ((UInt8, UInt8), (UInt8, UInt8)). But aCoder.encodeObject(myTuple)

2条回答
  •  再見小時候
    2020-12-18 00:47

    I just want to share my code which has some updates based on Ian's code. I used mine to create a list of category / subcategory of elements.

    class catSubcatOption: NSObject, NSCoding  {
    
    var element: (x: String, y: String)!
    
    override init() {
    
    }
    
    public func encode(with aCoder: NSCoder) {
        aCoder.encode(element.category, forKey: "category")
        aCoder.encode(element.subcategory, forKey: "subcategory")
    }
    
    required init(coder decoder: NSCoder) {
        let category = decoder.decodeObject(forKey: "category") as! String
        let subcategory = decoder.decodeObject(forKey:"subcategory") as! String
        element = (category,subcategory)
    } }
    

提交回复
热议问题