我在我的函数中将NSDictionary作为参数但是有问题因为不知道如何检查该参数是否为nil.
我的功能看起来像这样:
func doSmth(val : NSDictionary)
在我的函数内部,我试图获得一些值:
let action = val["action"] as! String
但是当接收参数val为nil时,得到错误“致命错误:在解开可选值时意外地发现nil”.
解决方法
该错误是由于假设(强制转换)有时可能为零的值. 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 }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。