【发布时间】:2019-07-19 13:17:05
【问题描述】:
我正在尝试在 RealmSwift 中存储一个枚举案例。但是 Realm 不支持枚举。 This article 提出了一个很酷的解决方案。在其中,他们将 private 添加到 Realm 类中的一个属性之前,以防止从类外部对其进行设置或读取,然后在另一个属性上使用一些 getter 和 setter 来读取和写入该私有属性。
这是我对该解决方案的版本:
@objcMembers
class PlaylistRealmObject: Object {
dynamic var id: String = UUID().uuidString
dynamic var created: Date = Date()
dynamic var title: String = ""
private dynamic var revisionTypeRaw: String = RevisionType.noReminder.rawValue
var revisionType: RevisionType {
get { return RevisionType(rawValue: revisionTypeRaw)! }
set { revisionTypeRaw = newValue.rawValue }
}
let reminders = List<ReminderRealmObject>()
let cardsInPlaylist = List<CardRealmObject>()
override static func primaryKey() -> String? {
return "id"
}
}
我尝试实现该解决方案,但发现将 private 添加到一个属性会导致 Realm 忽略架构上的属性。
Another article 实现了相同的解决方案,但不使用私有。如果有办法将 Realm 属性设为私有,那么在我看来,这将是解决方案的最佳实现。
有没有办法将 Realm 类中的属性设为私有?如果不是,为什么?
【问题讨论】: