Swift:如何比较两个Dictionary <string,any =“”>结构?

时间:2016-07-13 12:55:48

标签: ios swift generics

我使用在Swift中编写的Static框架,该框架使用typealias Context = [String: Any]来存储行的其他信息。

现在,我需要比较Context中两个extension Row结构是否相等:

public func ==(lhs: Row, rhs: Row) -> Bool {
    // TODO: image, ...
    return lhs.text == rhs.text
        && lhs.detailText == rhs.detailText
        && lhs.accessory == rhs.accessory
        && lhs.context == rhs.context
}

因此,我为==实施了Row.Context运算符:

public func ==(lhs: Row.Context, rhs: Row.Context) -> Bool {
    return Array(lhs.keys) == Array(rhs.keys)
    // TODO: && Array(lhs.values) == Array(rhs.values)
}

但是现在,为了lhs.context == rhs.context我需要扩展Row.Context类型以符合Equatable

extension Row.Context: Equatable {}

这正是我遇到以下错误的原因:

  

&#34;必须在非专用泛型上声明约束扩展   type&#39; Dictionary&#39;具有由&#39;其中&#39;指定的约束。条款&#34;

error - extension Row.Context: Equatable

暂时忽略Row.Context的func ==实现,如何使Row.Context符合Equatable

0 个答案:

没有答案