在解开一个Optional值时捕获所有“意外发现的nil”

时间:2015-12-31 08:59:36

标签: ios swift error-handling

我有一个大型的快速项目从JSON获取许多数据。

很难检查每一个数据的和平性是否为零。

有没有办法捕获所有这些nils,以便我的应用程序在遇到意外的nils时不会崩溃?或者我必须在我拥有的所有数据中使用“if let variable = ....”!

由于

1 个答案:

答案 0 :(得分:6)

坏消息:是的,你应该经常检查选项。

好消息:有些快捷方式比if let更实用。例如。您可以提供合理的默认值(使用" nil-coalescing运算符")。

let itemID = jsonData["itemID"] as? NSNumber ?? 0
let stringVariable = jsonData["name"] as? String ?? ""

另请注意,您可以在不嵌套的情况下列出相关if let语句:

if let person = jsonData["person"] as? [String: AnyObject],
   let name = person["name"] as? String { 
      // process name
}