【发布时间】:2016-02-25 05:02:06
【问题描述】:
我是 Realm 的新手。我正在使用从 Object 继承的基类和该基类的自定义子类创建我的模型。我的模型要求基类通过覆盖静态ignoredProperties() 方法将某些属性声明为忽略。当试图在某些基类子类上覆盖该方法时,我收到一个 Swift 编译器错误,指出 类方法覆盖了“最终”类方法。我没有将我的基类实现标记为final。我不知道这是否是 Realm 当前的限制,但我似乎找不到任何关于此问题的参考。
我的代码如下所示:
class Base: Object {
// properties declarations
override static func ignoredProperties() -> [String] {
return ["someProperty"]
}
}
class SomeModel: Base {
// properties declarations
// compiler error here
override static func ignoredProperties() -> [String] {
var ignoredProperties = super.ignoredProperties()
ignoredProperties.append("someOtherProperty")
return ignoredProperties
}
}
有什么想法或建议吗?我目前在当前 Xcode (7.2.1) 和最新的 Swift 上使用来自 CocoaPods 的最新 Realm。
【问题讨论】:
-
该文档引导您远离模型继承,而是建议使用对象组合。
Base的目的是什么? -
你好@Michael,我使用
Base主要是为我的所有模型类定义一些通用属性。