当我从字典中读取不存在的值时,我遇到了崩溃,所以:
<android.support.design.widget.FloatingActionButton
android:layout_height="wrap_content"
android:layout_width="wrap_content"
app:layout_anchor="@id/appbar"
android:layout_gravity="end|bottom"
android:src="@drawable/ic_discuss"
android:layout_margin="@dimen/fab_margin"
android:clickable="true"/>
正在崩溃,因为我需要 let state:NSString = module["state"] as! NSString
,所以如果我尝试:
? or !
我从编译器收到错误,我必须删除 let state:NSString = module!["state"] as! NSString
//or
let state:NSString = module?["state"] as! NSString
那么你如何正确地做到这一点?
答案 0 :(得分:1)
您需要使用可选绑定。
if let state = module["state"] as? NSString {
// do something with state
}
// else the value was nil
或者,正如评论中所建议的那样,您可以使用guard
声明。
guard let state = module["state"] as? NSString else {
// handle nil value
return
}