【问题标题】:How do we append values to dictionary containing 3 elements in swift 2.3?我们如何在 swift 2.3 中将值附加到包含 3 个元素的字典中?
【发布时间】:2017-02-13 11:58:40
【问题描述】:

我正在尝试将值附加到我这样声明的字典中。

var setHomIconDict:[(iconImg: UIImage, Operator: String, oprCode: String, oprMerchCode:String)]!

我不确定它的字典。我正在快速学习,我在网上找到了一个有趣的代码。无论如何,我对如何将值附加到此感到困惑。我试过了

setHomIconDict.append((iconImg:img!, Operator: "Strin", oprCode: "Hello", oprMerchCode: "Huja"))

但我收到此错误:致命错误:在展开可选值时意外发现 nil。这是图片

谁能推荐一个合适的方法。

【问题讨论】:

  • 为你需要的数据创建一个模型类。然后创建一个模型类的数组。将您的模型类对象添加到包含所有必需值的数组中。

标签: ios swift swift2.3


【解决方案1】:

setHomIconDict 不是Dictionary,它是一个元组数组,你会遇到这个崩溃,因为你还没有初始化setHomIconDict 对象,你刚刚声明了它的类型。所以用它的声明初始化它。

var setHomIconDict:[(iconImg: UIImage, Operator: String, oprCode: String, oprMerchCode:String)] = []

注意:不是创建元组数组更好的解决方案是创建一个自定义模型Class,其属性为set/access,然后创建该自定义Class 对象的数组并使用它。

【讨论】:

  • 初始化如下:= []
  • var setHomIconDict:[(iconImg: UIImage, Operator: String, oprCode: String, oprMerchCode:String)] = []
  • @hasan83 已编辑答案:)
【解决方案2】:

您最好创建一个结构来保存您的值。那么你的数组就是那个结构的数组。

struct homIcon {
    var iconImg: UIImage
    var Operator: String
    var oprCode: String
    var oprMerchCode:String
}

var setHomIconArray:[homIcon] = []

let newHomIcon = homIcon(iconImg: img!, Operator: "Strin", oprCode: "Hello", oprMerchCode: "Huja")

setHomIconArray.append(newHomIcon)

【讨论】:

    【解决方案3】:

    正如 Nirav 所说,您使用的语法创建了一个元组数组。如果您想要字典,请去掉括号。

    您想使用以下语法定义键/值对:

    var aDict = [key:value, key:value, key:value] 
    

    然后您可以使用以下方法添加新的键/值对:

    aDict[newKey] = newValue
    

    您的目标是创建和使用字典,还是您的目标是用户并理解您在网上找到的结构?

    【讨论】:

      猜你喜欢
      • 2015-02-03
      • 1970-01-01
      • 1970-01-01
      • 2017-01-15
      • 2021-04-24
      • 2021-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多