-1

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

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

}

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

在此处输入图像描述

在此处输入图像描述

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

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

4

2 回答 2

1

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

转到您的项目 Targets > Build Phases > Compile Sources 并检查是否在此处列出了包含字典扩展名的 Swift 文件,如果没有,请单击加号并添加它。之后,您应该能够在项目的任何地方使用您的扩展方法。

于 2018-10-02T14:09:02.120 回答
0

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

在此处输入图像描述

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

于 2018-09-27T14:10:19.083 回答