【发布时间】:2016-12-16 08:49:16
【问题描述】:
我刚刚构建了一个 SpriteKit 演示应用程序。 我不在下面的代码下
if let view = self.view as! SKView? {
...
}
(self.view as!SKView?) 是什么意思? 他们为什么不直接写这样的代码:
if let view = self.view as? SKView {
...
}
有什么区别? 非常感谢!
【问题讨论】:
-
第一个语法(强制展开一个可选的可选)在术语上是矛盾的,根本不应该使用。我希望编译器在用于可选绑定时抛出错误。
-
@Eric 你的问题得到解答了吗?
-
我在 Xcode 8.2 创建的 SpriteKit 默认演示中获得了这些代码。我认为开发人员使用 (as!) 是因为他想表达 (self.view) 已经设置为一个 SKView 实例并且永远不会为 nil。同时他想使用 (if let) 语法,所以他需要一个可选类型(SKView?)。也许这只是一种习惯,根本没有必要。
标签: swift