关于swift:静态成员不能用于类型的实例

Static member cannot be used on instance of type

我正试图创建一个单实例的访问方法。我得到这个错误(见下面的代码)。我不明白为什么会出现这个错误,这个错误意味着什么。有人能解释吗?

1
2
3
4
5
6
7
8
9
10
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
  static private var thedelegate: AppDelegate?

  class var delegate : AppDelegate {
    return thedelegate!
  }

  func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    thedelegate = self // syntax error: Static member 'thedelegate' cannot be used on instance of type 'AppDelegate'


您需要在静态/类变量或函数前面加上声明它的类名,即使是在同一个类中。

在这种情况下,您需要EDOCX1[0]

正如马丁R.指出的那样,埃多克斯1〔1〕。


您正试图从该类的实例访问类级变量。要使用它,需要生成类级函数:static func()。试试这个:

1
2
3
static func sharedDelegate() -> AppDelegate {
    return UIApplication.sharedApplication().delegate as! AppDelegate
}