我在我的函数中将NSDictionary作为参数但是有问题因为不知道如何检查该参数是否为nil.
我的功能看起来像这样:
func doSmth(val : NSDictionary)
在我的函数内部,我试图获得一些值:
let action = val["action"] as! String
解决方法
该错误是由于假设(强制转换)有时可能为零的值. Swift非常棒,因为它允许在非常简洁的语句中使用条件展开和条件转换.我推荐以下内容(适用于Swift 1-3):
使用“if let”有条件地检查字典中的“action”.
用于?有条件地将值转换为String
if let actionString = val["action"] as? String { // action is not nil,is a String type,and is now stored in actionString } else { // action was either nil,or not a String type }