Чтобы настроить ваши геттеры и сеттеры с помощью Realm Swift, вам необходимо определить простой базовый хранимый объект. Затем вы можете получить доступ к этому свойству из другого, которое вы определяете поверх него с помощью настраиваемых сеттеров и геттеров, как показано ниже.
public class Foo : Object {
private dynamic var _bar: Int
public var bar: Int {
get {
return _bar + 1
}
set {
_bar = newValue - 1
}
}
}
Обратите внимание, что при использовании Свифта willSet
или didSet
с Realm Swift может не работать, как вы ожидаете. Они запускаются только для автономных автономных объектов. Как только вы сохраняете объект или извлекаете постоянный объект, все геттеры и сеттеры переопределяются для прямого доступа к сохраненным значениям.
DynamicObject
не то, что вы хотите использовать. Это предназначено для прецедентов, где у вас нет сильных гарантий по вашей схеме объектов и вам нужно иметь дело с неструктурированными данными или базами данных, которые вы сами не создали.