2016-05-16 147 views
-1

我想分配字典项目的值来标签。这个词典在数组内。Swift - 字典项目标签

当我打印这个项目像这样:

print(wsQAshowTagArray![0]["LData1"]); 

返回

Optional(410056) 

这是正确的值。但我不知道为什么可选()在那里。

不管怎么说,当我尝试这个值分配给一个标签,像这样:

self.LData1.text = wsQAshowTagArray![0]["LData1"] 

我的代码变黑,我得到这个错误,只有当我运行它。

enter image description here

为什么会出现这个错误,我怎么分配这一个标签吗?

+0

看起来'wsQAshowTagArray![0] [“LData1”]'是一个'Int?',你不能给文本字符串赋一个整数。 – kennytm

+0

字典访问总是返回可选项。为什么?因为如果密钥不存在于字典中,你会得到'nil'。为了能够返回'nil',它必须返回一个可选类型的值。 – vacawama

回答

2

wsQAshowTagArray![0]["LData1"]是可选的Int。您可以通过附加!展开它迫使:

let someInt = wsQAshowTagArray![0]["LData1"]! 

然后,你可以把它放在一个字符串,像这样:

LData1.text = "\(someInt)" 

或者作为一个班轮:

LData1.text = "\(wsQAshowTagArray![0]["LData1"]!)" 

注意此代码会崩溃,因为您使用!强制解包。你应该真的使用if letguard let。可选项是Swift语言的基础部分。您应该阅读the docs on them(他们很短)。

+0

请注意,实例和局部变量应以小写字母开头,因此您应该将'LData1'重命名为'lData1'(或者可能更具描述性)。 –