我是Realm的新手。我使用從Object繼承的基類和此基類的自定義子類創建我的模型。我的模型要求基類通過覆蓋靜態ignoredProperties()
方法聲明一些屬性爲忽略。當試圖在某些基類子類上覆蓋該方法時,我得到一個Swift編譯器錯誤,指出類方法會覆蓋「最終」類方法。我沒有將我的基類實現標記爲final
。我不知道這是否是目前Realm的限制,但我似乎無法找到對此問題的任何參考。在Object子類和它自己的子類上實現ignoredProperties()
我的代碼如下所示:
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
}
}
任何意見或建議?我目前正在使用CocoaPods的最新Realm,目前的Xcode(7.2.1)和最新的Swift。
該文檔使您遠離模型繼承,並推薦使用對象組合。 「Base」的用途是什麼? – Michael
你好@Michael,我使用'Base'主要是爲我所有的模型類定義一些共同的屬性。 – boliva