一尘不染

如何在编码类型中使用任何

swift

我目前Codable在我的项目中使用类型,并且遇到问题。

struct Person: Codable
{
    var id: Any
}

id上面的代码中的可以是StringInt。这是id类型的原因Any

我知道Any不是Codable

我需要知道的是如何使它工作。


阅读 237

收藏
2020-07-07

共1个答案

一尘不染

可编码需要知道要转换的类型。

首先,我将尝试解决不知道类型的问题,看看是否可以解决它并使它更简单。

否则,我目前认为解决您的问题的唯一方法就是使用如下所示的泛型。

struct Person<T> {
    var id: T
    var name: String
}

let person1 = Person<Int>(id: 1, name: "John")
let person2 = Person<String>(id: "two", name: "Steve")
2020-07-07