我正在try 创建一个单例的访问方法.我得到了这个错误(见下面的代码).我不明白我为什么会犯这个错误,这个错误意味着什么.有人能解释一下吗?

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

Swift相关问答推荐

为什么 Swift Tuples 只能在元素个数小于等于 6 的情况下进行比较?

如何从 LLDB 调用带有断点的 Swift 函数?

Swift:连接两个数组而不重复共享后缀/前缀

在 Swift 中,如何查看 Process() 传递给 shell 的字符串?

Vapor - 流利的,将对象保存到 PostgreSQL

SwiftUI 文本被意外截断

如何在不阻塞 UI 更新的情况下使用 Swift Concurrency 在后台执行 CPU 密集型任务?

如何防止 UITableViewCell 移动(Swift 5)

Swift在十进制格式中失去精度

iPhone 不可用.请重新连接设备. / iOS 14.2 - Xcode 12.1

如何在 Swift 包管理器库中包含assets资源 /资源?

如何运行导致框架运行时错误“代码签名无效”的 iOS 应用程序

数据输入自定义视图的 Swift 示例(自定义应用内键盘)

UIApplication.shared.delegate 等效于 SceneDelegate xcode11?

如何在 SwiftUI 中修改 List 的背景 colored颜色 ?

如何在 swiftUI 中调整 HStack 元素之间的间距?

DispatchSourceTimer、Timer 和 asyncAfter 的区别?

UITableViewCell 多选时选定的背景 colored颜色

“${PODS_ROOT}/SwiftLint/swiftlint”使用 Xcode 10 导致“Command PhaseScriptExecution failed with a nonzero exit code”

何时使用 Semaphore 而不是 Dispatch Group?