我试图从一个服务器响应中创建一个自定义对象,它有几个一致的字段和一个对象数组。让我们称之为DynamicResponse
。对于任何一个DynamicResponse
,数组中的对象将是相同类型的某个自定义对象,但不同的DynamicResponse
对象将有不同类型的自定义对象。下面是我试图解释的示例。
当声明一个DynamicResponse
对象时,有没有一种方法可以在DynamicResponse
中确定数组的类型?这与我们创建一个数组对象并在该数组中定义对象的类型非常相似。我想创建一个DynamicResponse
对象,并在该对象的自定义变量中定义对象的类型。现在,我将数组的类型设置为[Any]
,然后必须根据使用的端点对其进行强制转换。我希望能够创建一个DynamicResponse<Person>
来指示DynamicResponse
中的自定义数组将是Person
类型。有办法做到这一点吗?
范例
回答A:
{
page: 1,
count: 26,
objects: [
{
name: "bob",
occupation: "builder"
},
{
name: "walt",
occupation: "welder"
},
...
]
}
回答B:
{
page: 2,
count: 99,
objects: [
{
location: "Earth",
inhabitants: 8000000000
},
{
location: "Mars",
inhabitants: 0
},
...
]
}
所以第一个DynamicResponse
是
page: Int
count: Int
objects: [Person]
第二个DynamicResponse
是
page: Int
count: Int
objects: [StellarObject]
除自定义对象数组中的对象类型外,所有字段均保持一致。
1条答案
按热度按时间mwkjh3gx1#
只要将数组的型别设为型别参数,并限制为
Codable
即可:然后你可以做: