我对斯威夫特不熟悉,对这种句法很困惑。我知道当你将()添加到某个东西的末尾时,你就初始化了它。但我还是很困惑这意味着什么!我在下面添加代码。
请帮助澄清这句话结尾的括号是什么意思!谢谢您!
在这种情况下,在等号后面加上所有的代码意味着什么?(我知道如何创建一个变量并向它添加一个字符串、int或类似的东西)。
我只是对这个代码有点困惑。
感谢您对初学者的理解!
var viewController: ViewController = {
return self.instantiateViewControllerWithIdentifier("Play") as ViewController
}()
编辑1-
var statusBarStyle: UIStatusBarStyle = .Default {
didSet{
setNeedsStatusBarAppearanceUpdate()
}
}
最佳答案
{}
声明一个闭包,它是匿名函数。{
和}
之间的一切都是一个函数体。由于在提供的代码中定义的闭包没有参数,因此可以通过()
作为常规函数执行。{ .. }()
只是定义并立即执行匿名函数。
在函数体中有一个instantiateViewControllerWithIdentifier("Play")
调用,它返回AnyObject
。由于预期的viewController
变量(var
)将成为ViewController
的类型,因此我们将AnyObject
结果转换为instantiateViewControllerWithIdentifier
as
ViewController
对于statusBarStyle
,uistatusbarstyle是一个枚举。.Default
是枚举的情况之一。它也可以写为var statusBarStyle = UIStatusBarStyle.Default
。{ ... }
中的代码是声明getter和setter行为的一种方法。在这种特殊情况下,只有一个行为被定义,这意味着只要更新了didSet
的值(这是可能的,因为它是UIStatusBarStyle
的),调用函数var
。在Swift Book-https://itunes.apple.com/us/book/swift-programming-language/id881256329中,您还可以阅读其他getter&setters关键字,例如setNeedsStatusBarAppearanceUpdate
、get
、set
。