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 文件,如果没有,请单击加号并添加它。之后,您应该能够在项目的任何地方使用您的扩展方法。
在更新到 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 文件,如果没有,请单击加号并添加它。之后,您应该能够在项目的任何地方使用您的扩展方法。