是否可以在RealmSwift中使用枚举? [英] Is it possible to use enums in RealmSwift?
本文介绍了是否可以在RealmSwift中使用枚举?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想做这样的事情:
enum WeekDay {
case Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
}
class Person: Object {
dynamic var birthday: WeekDay? = .Monday
dynamic var id: String? = nil
dynamic var birthdayRaw: String? = nil
override static func primaryKey() -> String? {
return "id"
}
}
但是,我遇到一个错误:
But, I'm getting an error:
由于属性的类型不能为动态,因此无法将其标记为动态 代表在Objective-C
Property cannot be marked dynamic because its type cannot be represented in Objective-C
我该如何解决?感谢您的帮助.
How can I solve this ? Thanks for any help.
推荐答案
领域没有直接的方法. Github问题.
Realm doesn't have a direct way do it. Github issue.
但是你可以考虑这个技巧
But you can consider this trick
enum WeekDay: String {
case Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
}
class Person: Object {
private var _day: WeekDay?
var birthday: WeekDay? {
get {
if let resolTypeRaw = birthdayRaw {
_day = WeekDay(rawValue: resolTypeRaw)
return _day
}
return .Sunday
}
set {
birthdayRaw = newValue?.rawValue
_day = newValue
}
}
dynamic var id: String? = nil
dynamic var birthdayRaw: String? = nil
override static func primaryKey() -> String? {
return "id"
}
}
这篇关于是否可以在RealmSwift中使用枚举?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文