ios – Swift扩展 – 必须在非专用泛型类型’Array’上声明约束扩展

ios – Swift扩展 – 必须在非专用泛型类型’Array’上声明约束扩展,第1张

概述我有一个返回 JSON对象数组的API.我已将结构设置为如下所示: typealias MyModels = [MyModel]struct MyModel: Codable { let field1: String let field2: String let mySubModel: SubModel? enum CodingKeys: String, Co 我有一个返回 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"    }}

我想要做的是添加此扩展,提供路径var(NetworkModel协议为API *** 作提供了一些基本功能):

extension MyModels: NetworkModel {    static var path = "the/endpoint/path"}

当base是对象或Json键时,我在这种方式设置的其他模型/结构类中没有任何问题.但是,由于这个是不同的,并且只是一个数组,当我在该类中放入该扩展时,我收到此错误:

Constrained extension must be declared on the unspecialized generic type 'Array' with constraints specifIEd by a 'where' clause

我已经做了一些挖掘并尝试了一些关于扩展的where子句的东西,但我对它想要的东西感到有些困惑.我确定这很简单,但对此有何看法?如果我需要以不同的方式使用上面的类型,我很好.提前致谢!

解决方法 我猜你的意思

extension MyModels: NetworkModel {

有错误吗?你好像错过了那里.

该错误基本上告诉您这样做:

extension Array : NetworkModel where Element == MyModel {    static var path = "the/endpoint/path"}

你不能简单地扩展[MyModel].

总结

以上是内存溢出为你收集整理的ios – Swift扩展 – 必须在非专用泛型类型’Array’上声明约束扩展全部内容,希望文章能够帮你解决ios – Swift扩展 – 必须在非专用泛型类型’Array’上声明约束扩展所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1067125.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存