1. ホーム
  2. swift

[解決済み] 型のインスタンスでは静的メンバを使用できません。

2022-02-07 08:21:43

質問

シングルトンにアクセスするメソッドを作成しようとしています。 このエラーが発生します(以下のコードを参照)。なぜこのエラーが出るのか、このエラーが何を意味するのか理解できません。 どなたか説明していただけませんか?

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

解決方法は?

クラスレベルの変数に、そのクラスのインスタンスからアクセスしようとしているのです。そのためには、クラスレベルの関数、static func () を作る必要があります。これを試してみてください。

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