Как настроить геттер и сеттер в Realm Swift?

Я новичок в Realm, раньше я использовал MagicalRecord.

В MagicalRecord я могу обрабатывать функцию импорта или даже устанавливать некоторые mappingKeys для нескольких имен кандидатов.

Я хотел бы настроить некоторые свойства моего объекта Realm.

я нашел DynamicObject это похоже на то, что я хочу. Тем не менее, я понятия не имею, как его использовать.

1 ответ

Чтобы настроить геттеры и сеттеры с помощью Realm Swift, вам необходимо определить простое базовое хранимое свойство. Затем вы можете получить доступ к этому свойству из другого, который вы определили поверх него с помощью пользовательских сеттеров и геттеров, как показано ниже.

public class Foo : Object {
    private dynamic var _bar: Int

    public var bar: Int {
        get {
            return _bar + 1
        }
        set {
            _bar = newValue - 1
        }
    }
}

Обратите внимание, что использование Swift's willSet или же didSet с Realm Swift может работать не так, как вы ожидаете. Они срабатывают только для неприсоединенных автономных объектов. Как только вы сохраняете объект или извлекаете постоянный объект, все методы получения и установки переопределяются для прямого доступа к постоянным значениям.


DynamicObject это не то, что вы хотите использовать. Это предназначено для случаев использования, когда у вас нет строгих гарантий в отношении вашей объектной схемы и вам нужно иметь дело с неструктурированными данными или базами данных, которые вы не создали сами.

Другие вопросы по тегам