Swift: 更新到 4.2 后无法扩展词典

Swift: After update to 4.2 can not extend Dictionary

在更新到 Swift 4.2 之前,我有下一个词典扩展:

extension Dictionary where Value: Equatable {
    func someKey(forValue val: Value) -> Key? {
        return first(where: {  == val })?.key
    }

}

并在 [String:String] 字典中使用它。

更新到 4.2 后编译失败:不存在这样的方法

4.2 中的词典定义有变化吗?

@Leo Dabus 的评论是对的。由于某种原因,扩展文件不在我的编译源中。

当我将它添加到编译源时一切正常

您可能没有将扩展所在的文件正确添加到您的项目中。

转到您的项目目标 > 构建阶段 > 编译源并检查是否列出了包含字典扩展名的 Swift 文件,如果没有,请单击加号并添加它。之后,您应该能够在项目的任何地方使用您的扩展方法。