【问题标题】:How to get different key with single value in dictionary by Swift 3如何通过 Swift 3 在字典中获取具有单个值的不同键
【发布时间】:2018-06-25 23:19:10
【问题描述】:

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

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

当我点击第一个@user1时,我会得到一个key(114defba4d092ggf00e0fdb1)。
然后我点击第二个@user1,我会得到另一个密钥(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)")
        }
})

【问题讨论】:

  • 为什么不交换地图中的键和值?如果是这样,你得到了价值 ref,不需要做一个关键计数器
  • 那么您是只有一个标签来保存所有用户,还是有多个标签,每个标签都用于一个用户?
  • 好的,我想显示多个标签(@user1),它们有不同的键。
  • @vg0x00 ["@user1": "114defba4d092ggf00e0fdb1", "@user1":"114defba4d092ggf00e0fdb3", "@user1":"114defba4d092ggf00e0fdb2"] 就像这样有相同的密钥?合法吗?
  • 您不需要在标签中显示所有键值,例如:“@user1.(hash1)”、“@user1.(hash2)”、“@user1.(hash3 )" 只显示前 5 个字符:"@user1, @user1, @user1"

标签: ios swift string dictionary nsdictionary


【解决方案1】:

您还可以制作具有多个键值对的数组,您可以为标签添加标签,点击后您可以直接根据标签获取值。

所以你的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 中获取点击值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-11
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 2018-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多