我正在使用[UIImage:UIImage]类型的swift字典,并试图为给定的值找到一个特定的键.在Objective-C中,我可以使用allKeysForValue,但对于Swift字典,似乎没有这样的方法.我应该用什么?

推荐答案

Swift 3:双射词词典特例的更有效方法

如果反向字典查找用例包括键和值之间具有一对一关系的双射字典,那么收集穷举filter操作的替代方法将是使用更快的短路方法来查找some键(如果存在).

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

用法示例:

let dict: [Int: String] = [1: "one", 2: "two", 4: "four"]

if let key = dict.someKey(forValue: "two") { 
    print(key)
} // 2

Swift相关问答推荐

为什么我的引用类型对象在初始化后有3个强引用?

SWIFT中MAP的静态方法包装器

NSApplication是否需要NSApplicationDelegate?

UICollectionViewCompostionalLayout Collectionview单元格宽度在重新加载数据后未正确调整大小

在不传递参数的情况下使用Init方法?

swift:只要框架名称中有一个带有框架名称的公共实体,就指定框架中公共 struct 的路径

如何使用可搜索在搜索栏中搜索包括>或<?

如何判断设备是否为 Vision Pro - Xcode 15 Beta 4

如何隐藏集合视图中特定的单元格,以避免出现空白空间?

如何使用 Swift 在非本地函数中切换()一个 Bool?

在这个使用 URLSession 的简单 case 中是否创建了一个强引用循环?

覆盖一个子元素的 HStack 对齐方式

@Binding 在@StateObject 和 View 上被发布了两次?

为什么 String.contains 在我导入 Foundation 时表现不同?

快速递归:函数与闭包

SwiftUI 视图的默认成员初始化器 VS 自定义初始化器

符合协议要求委托变量在 ios13 中可用

如何实现 Swift 的 Comparable 协议?

调整文本的字体大小以适应 UIButton

如何交换快速数组中的元素?