2017-06-20 64 views
-2

我從服務器獲得了像這樣的字符串值。Swift 3:如何閱讀「可選(可選(stringValue))」而不可選?

let filename = "\(eventList[index]["filename"])" 

但我得到可選(可選(stringValue的))值。 所以我改變了這個。

let filename = "\(eventList[index]["filename"]!)" 

然後,我可選(stringValue的)得到的值。 我不能再做這個錯誤。 如何在沒有任何可選的情況下讀取文件名?

+1

使用多了一個「**!**」支架後關閉。但是,如果使用**語法,則更好。 –

+0

解包 - 又名 - 正確地控制 - 可選項。 – vadian

+0

謝謝你的幫助! – LoveCode

回答

0

使用if-let語法來解開可選:

if let fileName = eventList[index]["filename"] { 
    // use fileName 
} 
0

eventList[index]給定索引處訪問一個數組項。您所指的項目似乎是可選字典,因此在訪問字典項目之前需要解開:eventLists[index]!(假設它存在並且當然有效,否則它會崩潰)

然後您可以訪問字典require值是一個可選的還有:

eventLists[index]!["fileName"]! 

假設你的名單是有效的,你會得到想要的String對象。

我建議使用安全檢查(if-let或其它變體),以防止崩潰