领域允许协议 属性?

Protocol Property Allowed With Realm?

我正在尝试对我的数据建模。

我有一个 class,其中包含 ExcerciseContent 类型的可选 属性。

import RealmSwift

class Excercise: Object {
  var content: ExcerciseContent? 
}

我们的想法是练习包含内容、持续时间以及以下两者之一:音频或文本。

protocol ExcerciseContent {
  var duration: Int { get }
}

protocol AudioExcerciseContent: ExcerciseContent {
  var audio: String { get }
}

protocol TextExcerciseContent: ExcerciseContent {
  var text: String { get }
}

我找到了类似的 ,但是我想知道这是否仍然适用,以及 "Realm needs to know what the concrete object type that will be linked to is at initialization time."

的响应是什么意思

我已经声明了协议,Realm 不应该知道对象类型吗?还是每次的对象类型都不一样,所以做不到?

.

您的 content 属性 应该是另一个领域对象或 supported property types.