从字典键中读取nil值?

时间:2016-07-19 17:59:06

标签: swift

当我从字典中读取不存在的值时,我遇到了崩溃,所以:

<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

那么你如何正确地做到这一点?

1 个答案:

答案 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
}