Как использовать перечисления в RealmSwift сейчас с обновлением 4.0? - PullRequest
1 голос
/ 02 апреля 2020

Раньше мы могли использовать перечисления в Realm Swift через геттеры и сеттеры (см. Отличное решение здесь ), но последнее обновление теперь требует от нас соответствия протоколу RealmEnum (ссылка здесь ). Будучи начинающим программистом, я, к сожалению, не понимаю, как это сделать. Копирование их кода вызывает множество ошибок в XCode.

@objc enum class MyEnum: Int, RealmEnum { //says inheritance from non-protocol, non-class type 'Int'
    case thing1 = 1 //says enum case is not allowed outside of an enum
    case thing2 = 2
    case thing3 = 3
}

class MyModel: Object {
   @objc dynamic enumProperty = MyEnum.thing1 //says expected 'var' keyword in property declaration
   let optionalEnumProperty = RealmOptional<MyEnum>() //says 'MyEnum is ambiguous for type lookup
} 

Как я могу заставить перечисления работать снова в Realm Swift, используя протокол RealmEnum?

1 Ответ

1 голос
/ 02 апреля 2020

Спасибо, Дэн, я понял это. Два опечатки в документации Realm (я свяжусь с ними, чтобы попытаться заставить их исправить это). Исправленный код ниже:

@objc enum MyEnum: Int, RealmEnum { //deleted the word class
    case thing1 = 1 
    case thing2 = 2
    case thing3 = 3
}

class MyModel: Object {
   @objc dynamic var enumProperty = MyEnum.thing1 //added the word var
   let optionalEnumProperty = RealmOptional<MyEnum>() 
} 
...