Подтвердить что ты не робот

Статический член нельзя использовать в экземпляре типа

Я пытаюсь создать метод доступа к singleton. Я получаю эту ошибку (см. Код ниже). Я не понимаю, почему я получаю эту ошибку и что означает эта ошибка. Может кто-нибудь объяснить?

@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'
4b9b3361

Ответ 1

Вы пытаетесь получить доступ к переменной уровня класса из экземпляра этого класса. Для этого вам необходимо создать функцию уровня класса: static func(). Попробуйте следующее:

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

Ответ 2

Вам нужно добавить переменную или функцию static/class с именем класса, в котором она объявлена, даже в том же классе.

В этом случае вы хотите return AppDelegate.thedelegate!

и, как указывает Мартин Р., AppDelegate.thedelegate = self