ios - 如何通过 Swift 3 在字典中获取具有单个值的不同键

标签 ios swift string dictionary nsdictionary

我有一个可点击的 UILabel。
并且标签文本显示所有字典值。
然后,当我单击时,我想使用值来检查键。
但是,如果我只有一个值,如何将键分隔到每个不同的值标签。

Image like this.

//Dictionary Data
self.finalDic = ["11defba4d092ggf00e0fdb5": "@user5 ", "114defba4d092ggf00e0fdb6": "@user6 ", "114defba4d092ggf00e0fdb1": "@user1 ", "114defba4d092ggf00e0fdb3": "@user1 ", "114defba4d092ggf00e0fdb4": "@user4 ", "114defba4d092ggf00e0fdb2": "@user1 "]

当我点击第一个@user1时,我会得到一个 key (114defba4d092ggf00e0fdb1)。
然后我点击第二个@user1,我将得到另一个 key (114defba4d092ggf00e0fdb3)。
最后我点击第三个@user1,我将得到最后一个 key (114defba4d092ggf00e0fdb2)。

我应该怎样做才能将它们分发到不同的标签?

label.handleMentionTap({ (string) in

        let keys = self.finalDic.allKeys(forValue: "@\(string) ")
        if keys.count > 1 {
            print("--> keys > 1 : \(keys)")
        }else{
            print("--> keys: \(keys)")
        }
})

最佳答案

您还可以制作具有多个键值对的数组,并且可以为标签赋予标签,然后点击即可根据标签直接获取值。

所以你的dataArray将是这样的:

let dataArray = [ ["11defba4d092ggf00e0fdb5": "@user5 "], ["114defba4d092ggf00e0fdb6": "@user6 "], ["114defba4d092ggf00e0fdb1": "@user1 "], ["114defba4d092ggf00e0fdb3": "@user1 "], ["114defba4d092ggf00e0fdb4": "@user4 "], ["114defba4d092ggf00e0fdb2": "@user1 "]]

您可以运行 for 循环来显示标签上的所有值:

for i in 0..<dataArray.count{
    yourLabel.tag = i
    for (key,value) in dataArray[i]{
        print(key, value)
        yourLabel.text = value
    }

}

通过点击手势,您可以获得标签的标签,因此您可以根据标签从 dataArray 中获取点击的值。

关于ios - 如何通过 Swift 3 在字典中获取具有单个值的不同键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48294969/

相关文章:

swift - 如何从变量生成标签名称? (如何将字符串转换为 UILabel)

string - Excel VBA - 在单元格之间复制文本并修改文本

iOS : How to check if date-time selected is valid time during day light savings?

ios - Google 标签管理器错误

iOS Swift 在后台下载大量小文件

ios - Swift:当有很多数据要显示时如何使用 ScrollView

R:对文本变量进行分类

c - 如何使用宏在 c 中使用标记粘贴连接两个标记来进行字符串化?

ios - 如何根据 UITextView 的内容调整 UITextView 和 UITableViewCell 的大小

ios - 为什么 removeAllObservers() 在 deinit 中不起作用?