为什么使用可选绑定?

Jos*_*osh 2 swift optional-binding

我知道这个问题在这里,但它只是部分回答了我的问题,我无法对答案发表评论,所以我不得不在这里发帖.

可选绑定和只是简单地使用?有什么区别?我的理解是你何时使用?要解包变量,如果它包含nil值,则不运行使用它的代码.(如果不是这样,请纠正我.)

Rob*_*Rob 7

如果你有一段你只想运行的代码块,你可以使用可选的绑定(if let)nil.

仅在访问可选变量的属性/方法时才使用可选链接(the ?).

但是有些情况下可选链接是不可能的(即您没有访问可选变量的属性/方法,而是将该变量用于其他目的).例如

// let's assume `data` is a `NSData?` optional

if let imageData = data {
    let image = UIImage(data: imageData)

    // now do something with `image`
}
Run Code Online (Sandbox Code Playgroud)

我们这样做是因为在这种情况下,我们不能使用可选的链接,并使用强制展开(例如let image = UIImage(data: data!))如果将崩溃datanil.