且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

是否可以在RealmSwift中使用枚举?

更新时间:2023-01-18 12:40:57

领域没有直接的方法. 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"
    }
}