为什么使用可选绑定?

时间:2015-11-17 23:54:40

标签: swift optional-binding

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

可选绑定与仅使用?之间有什么区别?我的理解是你何时使用?解包变量,如果它包含一个nil值,那么运行它的代码就不会运行。 (如果情况并非如此,请纠正我。)

1 个答案:

答案 0 :(得分:7)

如果您的代码块只是在变量不是if let时才能运行,则使用optional bindingnil)。

仅在访问可选变量的属性/方法时才使用optional chaining?)。

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

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

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

    // now do something with `image`
}

我们这样做是因为在这种情况下,我们无法使用可选链接,如果let image = UIImage(data: data!)data,则使用强制解包(例如nil)会崩溃。