我有一个
Button
,如果可选值为 nil,则将其设置为禁用:
Button("Enter")
{
if let selectedCategoryType = self.selectedCategoryType
{
//handle button action
}
else
{
//handle error
}
self.dismiss()
}
.disabled(self.selectedCategoryType == nil)
是否有某种方法可以做到这一点,这样当我已经知道它不会为零时,我就不必不必要地打开可选内容?就像
.navigationDestination
当你知道一个可选值被设置为某个非零值时,它会激活:
.navigationDestination(item: self.$selectedProject)
{
...
}
有什么方法可以做到这一点,这样当我已经知道它不会为零时,我就不必不必要地打开可选值?
如果你想使用 is,你必须以一种或另一种方式解开一个值。因此,如果您有一个名为
foo
的可选值并且想要使用该值,您可以:
用
if let foo...
或 guard let foo...
以通常的方式打开它
使用
!
运算符强制打开它,例如foo!.value
如果你知道它不为零(但在大多数情况下强烈建议不要这样做)
设计您的代码以仅处理选项并执行正常的
foo?.value
可选链接
使用 nil 合并运算符提供默认值,以防
foo
实际上为零,例如 foo ?? 0
其中,强制展开似乎最直接地回答了您的问题,但我再次提醒您,在大多数情况下,它真的令人不悦。