我在创建使用 NSSecureCoding 及其子类的类时遇到问题。
class ClassA: NSObject, NSSecureCoding {
public static var supportsSecureCoding: Bool { return true }
}
class ClassB: ClassA {
public static var supportsSecureCoding: Bool { return true } // "Cannot override static var"
}
我应该这样称呼它,因为 NSObject.h 中的文档说,
此属性必须在所有允许安全编码的类上返回 YES。采用 NSSecureCoding 并覆盖 initWithCoder: 的类的子类也必须覆盖此方法并返回 YES。// 编写解码数据的方法时,应参考安全编码指南。
目标-C:
@property (class, readonly) BOOL supportsSecureCoding;
迅速:
public static var supportsSecureCoding: Bool { get }
我使用的是 Xcode 10.0,在 Swift 4.0 和 Swift 4.2 上都试过了。人们如何解决这个问题?任何帮助表示赞赏。
更新:使用时public class var supportsSecureCoding
,它会编译,但在使用 Optimize for Speed 时会在运行时崩溃。