我想創建兩個Realm模型類和一個協議,兩個模型類都採用這兩個類。例如:我可以讓Realm Results類將協議用作泛型嗎?
在這種情況下,我創建了兩個模型類和一個協議。
但是,當我轉移到執行,發生問題。下面的代碼寫在視圖控制器中:
此代碼沒有任何問題。但代碼如下:
var animals: Results<Animal>? {
switch currentSegmented { // this is from UISegmentedControl
case .Cat: // this is from enum
return self.cats
case .Dog:
return self.dogs
}
不編譯時出現錯誤:Results requires that Animal inherit from Object
。
但是,Animal
是一個協議,因此不能從Object
繼承。
這裏還有可能使用協議嗎?
在這種情況下,更好的解決方案是子類對象本身並將其稱爲Animal。從這裏你可以繼承各自的動物。 – Shripada
@Shripada我相信這些作品,但你爲什麼認爲這是一個「更好的解決方案」? – Blaszard
不是更好,正確的解決方案。很明顯,這是Realm的要求,Result只能包含'Object的 – Shripada