swift - 在 Swift 中实例化新 Codable 对象的最简单方法是什么?

标签 swift codable

我有一个 Codable 类:

class Task: Codable {
    var name: String
}

当我尝试实例化它时:

let newTask = Task()
allTasks.append(newTask)

它给我错误:

Missing argument for parameter 'from' in call

我想要的只是将一个新对象 (newTask) 插入到一个数组中。最简单的方法是什么?

最佳答案

您可以从 NSObject 继承初始化器:

class Task: NSObject, Codable {
    var name: String = ""
}

let newTask = Task()

如果你不想继承 NSObject,那么只需创建你自己的初始化器:

class Task: Codable {
    var name: String?

    init() {

    }
}

如果你不想让 name 可选(或将其设置为默认值),则必须在 init() 中对其进行初始化,例如:

class Task: Codable {
    var name: String

    init(withName name: String) {
        self.name = name
    }
}
let newTask = Task(withName: "ikevin8me")

关于swift - 在 Swift 中实例化新 Codable 对象的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54301886/

相关文章:

json - Swift,当 key 未知/动态时,如何使用 Decodable 和 Codable 解析/解码 JSON

ios - Swift 4 Codable Realm 对象子类

ios - Xcode Playground 中的“快速查看”显示内存地址而不是对象和其他奇怪之处

ios - 如何删除 UITableView 中的单元格分隔符?

ios - 无法将类型 '() -> Void' 的值分配给类型 '(() -> Void)!'

swift - 使用带有未知字典键的 Swift 4 Codable 协议(protocol)

ios - swift 5 : Non-terrible solutions for sharing of JSON Key-values for Codable Structs?

swift - 矩阵中不同列中的快速更改值更改了另一个

swift - Swift 中的 Hashable 和 Equatable 有什么用?什么时候使用哪个?

json swift4 如何设置结构?