How to save list of object in user Default?

后端 未结 6 1302
故里飘歌
故里飘歌 2020-12-01 23:07

my object is :

 struct Order: Codable {
        var item_id:String = \"\"
        var quantity:Int = 0
        var image:String = \"\"
        var name:Strin         


        
6条回答
  •  半阙折子戏
    2020-12-01 23:44

    For your NSKeyedArchiver.archivedData(withRootObject: value) to work, your Order needs to conform to the Codable protocol. Just add these in your Order struct to this and it should work just fine.

    required public init(coder decoder: NSCoder) {
    
        item_id = decoder.decodeObject(forKey: "item_id") as? String ?? ""
        quantity = decoder.decodeObject(forKey: "quantity") as? Int ?? 0
        image = decoder.decodeObject(forKey: "image") as? String ?? ""
        name = decoder.decodeObject(forKey: "name") as? String ?? ""
        desc = decoder.decodeObject(forKey: "desc") as? String ?? ""
    
    }
    
    public func encode(with coder: NSCoder) {
    
        coder.encode(item_id, forKey: "item_id")
        coder.encode(quantity, forKey: "quantity")
        coder.encode(image, forKey: "image")
        coder.encode(name, forKey: "name")
        coder.encode(desc, forKey: "desc")
    }
    

提交回复
热议问题