Swift3 允许使用域的协议属性?

Swift3 允许使用域的协议属性?,swift3,realm,swift-protocols,realm-mobile-platform,Swift3,Realm,Swift Protocols,Realm Mobile Platform,我正在尝试为我的数据建模 我有一个类,它包含exercisecontent类型的可选属性 import RealmSwift class Excercise: Object { var content: ExcerciseContent? } 这个想法是一个练习包含内容、持续时间和两个选项中的一个:音频或文本 protocol ExcerciseContent { var duration: Int { get } } protocol AudioExcerciseContent

我正在尝试为我的数据建模

我有一个类,它包含exercisecontent类型的可选属性

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不应该知道对象类型吗?或者是对象类型每次都可能不同,这就是为什么不能这样做的原因?

您的
content
属性应该是另一个领域对象或其中一个领域对象