【发布时间】:2014-07-23 18:59:24
【问题描述】:
我以拆分视图控制器作为初始视图控制器开始我的项目,并从情节提要自动启动它。
一般来说,具有此 UI 的应用程序具有 一个且只有一个拆分视图控制器作为根,因此我在子类中创建一个 静态变量 并在初始化时设置它完成。
所以我想用 swift 尝试这种行为。
我在 iBook 上阅读了关于类型属性(带有 static 和 class 关键字)的 Swift 编程语言指南书,并尝试了一段代码来完成这项工作:
import UIKit
class SplitViewController: UISplitViewController {
class func sharedInstance() -> SplitViewController {
return SplitViewController.instance
}
class let instance: SplitViewController = nil
init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
self.initialization()
}
init(coder aDecoder: NSCoder!) {
super.init(coder: aDecoder);
self.initialization()
}
func initialization() {
SplitViewController.instance = self;
}
}
但我发现 Xcode 说类型属性的 class 关键字还不支持。
您有解决方案吗?
【问题讨论】:
-
如果将 'let' 替换为 'var' 会发生什么?
-
产生同样的错误。
-
这是第一粒种子,冷静点。 :) 如果书上说它受支持但尚不可用,它将支持。甚至错误说“还”。
-
是的@akashivskyy,你有理由,但可能是我这边的错误,有人有解决方案来解决这个问题......
-
@lespommes 众所周知,苹果对任何未决的事情守口如瓶。让他们感到尴尬的是,他们大量发布的新旗舰语言缺乏如此标准和明显的功能。在 Swift 正式投入使用之前,需要进行许多改进。