【问题标题】:Dictionary append not working in Swift字典追加在 Swift 中不起作用
【发布时间】:2017-11-15 11:55:47
【问题描述】:

为什么append(data) 不起作用?

import Foundation

//This is working.
let tablelist:[String: String] = [
    "red1": "manu1",
    "blue1": "chelsea1",
    "yellow1": "dort1",
    "green1": "nakamura1",
    "purple1": "real1"
]

var resulttablelist = [String: String]()

resulttablelist = tablelist

resulttablelist.removeAll()

for data in tablelist {
if data.value.contains("manu1") {

    //This append(data) not working. I have an error. I need your help.
    var resulttablelist = [String: String]()
    resulttablelist.append(data)

    print(resulttablelist)
    }
}

错误:

//Error!! value of type '[String : String]' has no member 'append' 

此示例代码正在运行。

for data in tablelist {
if data.value.contains("manu1") {
    print(data)
    }
}

将打印:

(key: "red1", value: "manu1")

【问题讨论】:

    标签: swift dictionary append


    【解决方案1】:

    把这个 var resulttablelist = String: String out of brats

      import Foundation
    
        //This is working.
        let tablelist:[String: String] = [
                                          "red1": "manu1",
                                          "blue1": "chelsea1",
                                          "yellow1": "dort1",
                                          "green1": "nakamura1",
                                          "purple1": "real1"
                                          ]
    
        var resulttablelist = [String: String]()
    
        resulttablelist = tablelist
    
        resulttablelist.removeAll()
    
        var newresulttablelist = [String: String]()
        for data in tablelist {
            if data.value.contains("manu1") {
    
                newresulttablelist.append(data)
    
                print(newresulttablelist)
            }
        }
    

    【讨论】:

    • 谢谢大家。你的回答完美。我要多学习,尽力而为。
    【解决方案2】:

    试试resulttablelist[Key] = Value

    resulttablelist 是一个字典,所以它需要有一个键值对

    键和值都是字符串

    编辑:在你的情况下,它会是

      resulttablelist[data.key] = data.value
    

    【讨论】:

    • 谢谢大家。你的回答完美。我要多学习,尽力而为。
    【解决方案3】:

    字典在 Swift 中没有 append 方法。您需要使用resulttablelist["manu1"] = data 而不是resulttablelist.append(data)

    【讨论】:

    • 谢谢大家。你的回答完美。我要多学习,尽力而为。
    【解决方案4】:

    你不能附加一个键和它的值,你应该把你的附加替换为 resulttablelist[data.key] = data.value 每次重置数组时,请注意 for in 中的 var resulttablelist = [String: String]() 行。

    【讨论】:

    • 谢谢大家。你的回答完美。我要多学习,尽力而为。
    【解决方案5】:

    你也可以用这个方法:

    YOUR_DICTIONARY.updateValue(_ value: Dictionary.Value, forKey key: Dictionary.Key)
    

    来源:

    https://developer.apple.com/documentation/swift/dictionary/1539001-updatevalue

    【讨论】:

      猜你喜欢
      • 2017-07-27
      • 2015-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-07
      • 1970-01-01
      • 2011-11-10
      • 2014-04-15
      相关资源
      最近更新 更多