如何将手动数据附加到struct Codable数组?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将手动数据附加到struct Codable数组?相关的知识,希望对你有一定的参考价值。
我想将手动数据附加到我的struct对象,这是一个Array。
我想在Array中添加“ALL”类别名称。
struct CategoryNameList : Codable
let categoryID : Int?
var categoryImageURL : String?
var categoryName : String?
var isSelected : Bool?
enum CodingKeys: String, CodingKey
case categoryID = "CategoryID"
case categoryImageURL = "CategoryImageURL"
case categoryName = "CategoryName"
case isSelected = "isSelected"
init(from decoder: Decoder) throws
let values = try decoder.container(keyedBy: CodingKeys.self)
categoryID = try values.decodeIfPresent(Int.self, forKey: .categoryID)
categoryImageURL = try values.decodeIfPresent(String.self, forKey: .categoryImageURL)
categoryName = try values.decodeIfPresent(String.self, forKey: .categoryName)
isSelected = try values.decodeIfPresent(Bool.self, forKey: .isSelected)
答案
您可以为此创建一个特殊的init,并在创建手动实例时使用,将此init方法添加到当前的struct CategoryNameList
struct CategoryNameList : Codable
//existing stuff
init(categoryName: String)
self.categoryID = nil
self.categoryName = categoryName
let all = CategoryNameList(categoryName: "All")
categoryNameArray.append(all)
以上是关于如何将手动数据附加到struct Codable数组?的主要内容,如果未能解决你的问题,请参考以下文章
将 Codable 保存到 UserDefaults 并匹配 NSCoding 的外观
Swift Codable:如何将***数据编码到嵌套容器中