我正在查看Swift中的一些UIKit头文件,特别是UIViewController
中的一个UIKit头文件,并且有一些函数返回隐含的未包装选项而不是普通的选项。
例如:
// The rotating header and footer views will slide out during the rotation and back in once it has completed.
func rotatingHeaderView() -> UIView! // Must be in the view hierarchy. Default returns nil.
func rotatingFooterView() -> UIView! // Must be in the view hierarchy. Default returns nil.
他们返回的默认值为零。在这种情况下肯定会返回普通的期权会让开发人员知道返回的内容很可能是零价值吗?
答案 0 :(得分:2)
隐式展开的选项是我们在Objective-C中使用的对象(过去时,amirite?)的最佳匹配。它们允许您直接使用返回的值(不需要可选的运算符?
或!
),但仍然可以查询nil
值。
有关详情,请参阅Rob Napier's great answer相关问题。
答案 1 :(得分:0)
如果不仔细阅读语言作者的思想,很难确定为什么有些UIKit函数会隐式返回未包装的选项。
据推测,这些函数做包含一个值(非nil
)。因此,显式解包使用可选项的一个原因可能是允许通过可选绑定进行类型检查:
if let definiteString = assumedString {
println(definiteString)
}