ios – 如果Element符合给定的协议,则扩展阵列以符合协议

ios – 如果Element符合给定的协议,则扩展阵列以符合协议,第1张

概述我想做这样的事情,但是无法正确地获取语法或者在网络上的任何地方找到能够正确编写它的方法: protocol JSONDecodeable { static func withJSON(json: NSDictionary) -> Self?}protocol JSONCollectionElement: JSONDecodeable { static var key: Str 我想做这样的事情,但是无法正确地获取语法或者在网络上的任何地方找到能够正确编写它的方法:
protocol JsONDecodeable {    static func withJsON(Json: NSDictionary) -> Self?}protocol JsONCollectionElement: JsONDecodeable {    static var key: String { get }}extension Array: JsONDecodeable where Element: JsONCollectionElement {    static func withJsON(Json: NSDictionary) -> Array? {        var array: [Element]?        if let elementJsON = Json[Element.key] as? [NSDictionary] {            array = [Element]()            for dict in elementJsON {                if let element = Element.withJsON(dict) {                    array?.append(element)                }            }        }        return array    }}

因此,只有当此数组的元素符合JsONCollectionElement时,我才希望将Array与我的协议JsONDecodeable相符合.

这可能吗?如果是这样,语法是什么?

解决方法 Swift 4.2

在Swift 4.2中,我能够使用符合这样的协议的元素扩展数组:

public extension Array where Element: customstringconvertible{    public var customDescription: String{        var description = ""        for element in self{            description += element.description + "\n"        }        return description    }}
总结

以上是内存溢出为你收集整理的ios – 如果Element符合给定的协议,则扩展阵列以符合协议全部内容,希望文章能够帮你解决ios – 如果Element符合给定的协议,则扩展阵列以符合协议所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存