Swift 3:如何从“Optional(Optional(optional(stringValue))”中读取没有可选的?

时间:2017-06-20 12:02:56

标签: swift

我从服务器那里得到了字符串值。

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

但是我通过可选(可选(stringValue))获得了值。 所以我改变了这个。

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

然后我用 Optional(stringValue)获得了值。 我不能再做这个错误了。 如何在没有任何可选项的情况下读取文件名?

3 个答案:

答案 0 :(得分:0)

使用nil-coalescing运算符aka双问号运算。它用于在展开可选类型时提供默认值。

let filename = eventList[index]["filename"] ?? ""

参考:http://www.jeenalinfotech.com/blogs/ios/how-to-do-optional-variable-assignment-with-default-value-double-question-mark/

答案 1 :(得分:0)

使用if let fileName = eventList[index]["filename"] { // use fileName } 语法解包可选:

{{1}}

答案 2 :(得分:0)

<canvas id="canvas" width="500" height="500"></canvas>访问给定索引处的数组项。您所引用的项目似乎是一个可选字典,因此在访问字典项目之前需要将其解包:eventList[index](假设它存在并且当然有效,否则会崩溃)

然后你可以访问字典要求值,这也是一个可选项:

eventLists[index]!

假设您的列表有效,您将获得所需的eventLists[index]!["fileName"]! 对象。

我建议使用安全检查(String或其他变体)来防止崩溃