我对斯威夫特不熟悉,对这种句法很困惑。我知道当你将()添加到某个东西的末尾时,你就初始化了它。但我还是很困惑这意味着什么!我在下面添加代码。
请帮助澄清这句话结尾的括号是什么意思!谢谢您!
在这种情况下,在等号后面加上所有的代码意味着什么?(我知道如何创建一个变量并向它添加一个字符串、int或类似的东西)。
我只是对这个代码有点困惑。
感谢您对初学者的理解!

 var viewController: ViewController = {

return self.instantiateViewControllerWithIdentifier("Play") as ViewController

}()

编辑1-
var statusBarStyle: UIStatusBarStyle = .Default {

        didSet{

            setNeedsStatusBarAppearanceUpdate()
     }

}

最佳答案

{}声明一个闭包,它是匿名函数。{}之间的一切都是一个函数体。由于在提供的代码中定义的闭包没有参数,因此可以通过()作为常规函数执行。{ .. }()只是定义并立即执行匿名函数。
在函数体中有一个instantiateViewControllerWithIdentifier("Play")调用,它返回AnyObject。由于预期的viewController变量(var)将成为ViewController的类型,因此我们将AnyObject结果转换为instantiateViewControllerWithIdentifierasViewController
对于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关键字,例如setNeedsStatusBarAppearanceUpdategetset

10-07 19:48
查看更多