2017-02-13 23 views
0

我试图附加价值的字典,我已经声明如下。我们如何追加值包含SWIFT 2.3 3元的字典吗?

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

虽然我不确定它的字典。我正在快速学习,并在网上找到了一个Intresting代码。无论如何,我很困惑我将如何附加值。我试图

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

,但我得到这个错误:致命错误:意外发现零而展开的可选值。这里是图像enter image description here

任何人都可以提出一个适当的方式。

+2

为您的所需数据创建一个模型类。然后创建一个你的模型类的数组。与所有所需的值附加模型类的对象到数组。 –

回答

2

setHomIconDict不是Dictionary它是一个元组数组,因为您尚未初始化setHomIconDict对象,因此您刚刚声明了它的类型,所以出现此故障。所以用它的声明初始化它。

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

注:而不是创建的元组更好的解决方案阵列是创建要set/access财产一个定制机型Class,然后创建一个自定义的Class对象的数组,并使用它。

+0

应该初始化为如下:= [] – hasan83

+0

VAR setHomIconDict:[(iconImg:UIImage的,操作员:字符串,oprCode:字符串,oprMerchCode:字符串)] = [] – hasan83

+1

@对于hasan83编辑答案:) –

0

由于Nirav说,你正在使用的语法创建的元组的数组。如果你想让字典摆脱括号。

你想用这个语法定义键/值对:

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

然后你就可以使用添加新的键/值对:

aDict[newKey] = newValue 

是您的目标是建立和使用字典,还是你的目标是让用户了解你在网上找到的结构?

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)