我正在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相关问答推荐

如何在向照片添加文本时定义文本对齐、文本背景的Alpha和在文本之前添加图像

向文本元素添加背景色失败

编写Swift字符串的属性包装时遇到问题

是否可以循环遍历SWIFT子类并访问它们的静态变量S?

';NSInternal不一致异常';,原因:';可见导航栏Xcode 15.0 Crash请求布局

如何为我的项目设置生命周期选项?

使用变量(而非固定)的字符串分量进行Swift正则表达式

从 Obj-C 函数返回 swift 类的不兼容指针类型

如何在 Swift 中做类型安全的索引?

Swift 包管理器 Package.resolved 文件末尾的版本是什么意思?

无法使用 RealityKit 播放 USDZ 动画

iOS16 Bug 键盘在表单解雇 SwiftUI 时打破布局

是否可以使任何协议符合 Codable?

AVPlayer 在 iOS 15.4 中寻求 completionHandler 返回 false

What is "SwiftPM.SPMRepositoryError error 5"?

使用 Alamofire 4.0 (Swift 3) 下载文件

将if let与逻辑或运算符一起使用

使 struct 可散列?

显示 UIAlertController 的简单 App Delegate 方法(在 Swift 中)

iPhone 纵向和 iPad 横向的通用应用程序