2016-05-16 146 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'(或者可能更具描述性)。 –