领域允许的协议属性?

时间:2017-01-18 17:53:27

标签: swift3 realm swift-protocols realm-mobile-platform

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

我有一个包含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 }
}

我发现了一个类似的question,但是我想知道这是否仍然适用,以及响应意味着“Realm需要知道将链接到的具体对象类型是在初始化时。 “

我已经声明了协议,不应该Realm知道对象类型吗?或者说对象类型每次都可能不同,这就是为什么它不能完成?

1 个答案:

答案 0 :(得分:3)

Realm needs to know what the concrete object type that will be linked to is at initialization time.

您的<input type="text" name="input_email" class="form-control" id="email"> <div id="email_error_block" style="display:none"><i class="fa fa-exclamation-triangle"></i> <span id="email_error_text"></span> 属性应该是另一个Realm对象或supported property types之一。