是否支持使用可选绑定重新声明可选参数?

时间:2016-03-04 22:51:09

标签: ios swift

如果函数调用接收到可选参数,则添加重新声明参数的可选绑定似乎按预期工作。可选绑定下的任何代码都使用新的非可选类型。

    func foo(notification: NSNotification?) {

    guard let notification = notification else {
        return
    }

    ... // do something with the non optional notification object

但我看到的每个例子都会检查参数是否为nil,如果不是nil,它们只是使用相同的参数变量。在我的特定示例中,我基本上将通知变量重新声明为非可选类型。这是在目标c中无法完成的事情,它给出了编译器错误。由于我不了解可选绑定的内部实现,很想知道这是否是解决此问题的方法,或者我需要使用不同的变量名。

1 个答案:

答案 0 :(得分:1)

是的,这通常是swift推荐的模式。

通常不需要将传递的可选项强制转换为内部变量,除非您想在内部对其进行变更,并且当您想要在任何其他代码之前退出函数时,看起来您正在正确使用防护如果参数为nil,则运行。