Как настроить геттер и сеттер в 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
это не то, что вы хотите использовать. Это предназначено для случаев использования, когда у вас нет строгих гарантий в отношении вашей объектной схемы и вам нужно иметь дело с неструктурированными данными или базами данных, которые вы не создали сами.