Arrays 如何制作数组<;任何>;平等的?
我有以下可解码类:Arrays 如何制作数组<;任何>;平等的?,arrays,swift,generics,swift4.1,Arrays,Swift,Generics,Swift4.1,我有以下可解码类: class Sample: Decodable { var something: Array<Any>? } extension Sample: Equatable { static func == (lhs: Sample, rhs: Sample) -> Bool { return rhs.something ?? [] == lhs.something ?? [] } } 类示例:可解码{ 什么:数组? }
class Sample: Decodable {
var something: Array<Any>?
}
extension Sample: Equatable {
static func == (lhs: Sample, rhs: Sample) -> Bool {
return rhs.something ?? [] == lhs.something ?? []
}
}
类示例:可解码{
什么:数组?
}
扩展示例:equalable{
静态函数==(左:示例,右:示例)->Bool{
返回rhs.something???[]==lhs.something???[]
}
}
给我错误类型Any
不符合协议
对于everyone信息,数组
中的对象类型只有在我收到响应后才会在运行时确定
需要帮助。您不能将
数组
设置为可均衡
或可解码
,因为两个协议
都需要数组的元素
类型为可均衡
或可解码
且任何
都不满足此要求
您可以做的是,创建自己的自定义类
,以满足上述要求,如下所示:
class MyAny: Equatable, Decodable {
static func == (lhs: MyAny, rhs: MyAny) -> Bool {
return lhs.id == rhs.id
}
var id: Int
}
class Sample: Decodable {
var something: Array<MyAny>?
}
classmyany:可等式、可解码{
静态函数==(lhs:MyAny,rhs:MyAny)->Bool{
返回lhs.id==rhs.id
}
变量id:Int
}
类示例:可解码{
什么:数组?
}
这毫无意义。比较的整个概念只存在于已知的量。。。。而且你不能解码任何代码。谢谢Kamran。我可以试试这个方法。