从Swift 3.2迁移到Swift 4我使用autosavesInPlace收到错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Swift 3.2迁移到Swift 4我使用autosavesInPlace收到错误相关的知识,希望对你有一定的参考价值。

在macOS项目中,我以这种方式使用autosavesInPlace:

import Cocoa

class Document: NSDocument {

    override class func autosavesInPlace() -> Bool {
        return true
    }

}

这一直有效,直到该项目在Swift 3.2中,但在Swift 4中更新项目时,我收到此错误:

方法不会覆盖其超类中的任何方法

我怎样才能解决这个问题?

答案

由于Swift 4 autosavesInPlace是一个属性(不是函数),所以你应该以这种方式覆盖:

class Document: NSDocument {
   override class var autosavesInPlace: Bool {
     return true
   }
}

以上是关于从Swift 3.2迁移到Swift 4我使用autosavesInPlace收到错误的主要内容,如果未能解决你的问题,请参考以下文章

将核心数据从 Swift 迁移到 SwiftUI

xcode 8.3.3 是不是运行 swift 3.2

从 Swift 2.3 迁移到 Swift 3 错误消息

将使用 Cocoapods 1.0.1 的 iOS 应用程序从 Swift 2.2 迁移到 3.0

NSData init?(contentsOf url: URL) 从 Swift 2 迁移到 Swift 3

Alamofire 自定义响应从 Alamofire v1.3 迁移到 3.0(和 Swift 2 语法)