我们如何在 swift 2.3 中将值附加到包含 3 个元素的字典中?

Posted

技术标签:

【中文标题】我们如何在 swift 2.3 中将值附加到包含 3 个元素的字典中?【英文标题】:How do we append values to dictionary containing 3 elements in swift 2.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。这是图片

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

【问题讨论】:

为你需要的数据创建一个模型类。然后创建一个模型类的数组。将您的模型类对象添加到包含所有必需值的数组中。 【参考方案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

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

【讨论】:

以上是关于我们如何在 swift 2.3 中将值附加到包含 3 个元素的字典中?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 C 中将新的字符串元素附加到 Swift 中的数组

在 Swift 3 中将结构附加到结构数组上

在 Swift 中将模型附加到数组中

如何在 Swift 2.3 中将 UInt8 转换为 Anyobject

如何在 Objective-C 中将值附加到数组

如何在 RxSwift 中将值附加到观察到的数组