svg*_*in3 5 collections ios type-alias swift swift-extensions
我有一个返回JSON对象数组的API.我已将结构设置为如下所示:
typealias MyModels = [MyModel]
struct MyModel: Codable {
let field1: String
let field2: String
let mySubModel: SubModel?
enum CodingKeys: String, CodingKey {
case field1 = "Field1"
case field2 = "Field2"
case mySubModel = "MySubModel"
}
}
struct SubModel: Codable {
let subModelField1: String
let subModelField2: String
enum CodingKeys: String, CodingKey {
case subModelField1 = "SubModelField1"
case subModelField2 = "SubModelField2"
}
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是添加此扩展,提供路径var(NetworkModel协议为API操作提供了一些基本功能):
extension MyModels: NetworkModel {
static var path = "the/endpoint/path"
}
Run Code Online (Sandbox Code Playgroud)
当base是对象或json键时,我在这种方式设置的其他模型/结构类中没有任何问题.但是,由于这个是不同的,并且只是一个数组,当我在该类中放入该扩展时,我收到此错误:
Constrained extension must be declared on the unspecialized generic type 'Array' with constraints specified by a 'where' clause
Run Code Online (Sandbox Code Playgroud)
我已经做了一些挖掘并尝试了一些关于扩展的where子句的东西,但我只是对它想要的东西感到有点困惑.我确定这很简单,但对此有何看法?如果我需要以不同的方式使用上面的类型,我很好.提前致谢!
我猜你的意思
extension MyModels: NetworkModel {
Run Code Online (Sandbox Code Playgroud)
有错误吗?你好像错过了s那里.
该错误基本上告诉您这样做:
extension Array : NetworkModel where Element == MyModel {
static var path = "the/endpoint/path"
}
Run Code Online (Sandbox Code Playgroud)
你不能简单地做一个扩展[MyModel].
| 归档时间: |
|
| 查看次数: |
1406 次 |
| 最近记录: |