Переменная RxSwift с хранением объекта Realm

У меня возникли некоторые проблемы с пониманием того, есть ли какая-либо поддержка для объединения RxSwift с Realm, поскольку Realm явно указывает поддерживаемые типы переменных.

Можно ли вместо следующего.

import RealmSwift

class Dog: Object {
  dynamic var name = ""
}

Чтобы сделать что-то подобное.

import RealmSwift
import RxSwift

class Dog: Object {
  var name = Variable<String>("")
}

Я немного погуглил и не нашел актуальной информации о расширениях или других решениях для этого. Был бы признателен за любую помощь или просто указание в правильном направлении.


person Philip Laine    schedule 17.03.2016    source источник
comment
У вас может быть свойство любого типа в Object подклассах, но некоторые типы (например, String, Int) будут сохранены в Realm: realm.io/docs/swift/latest/#supported-types.   -  person Michał Ciuba    schedule 17.03.2016


Ответы (1)


Как насчет использования KVO rx_observe() вместо этого? Как следующее:

dog
    .rx_observe(String.self, "name")
    .subscribeNext { name in
        print("string: \(name)")
}

Но есть ограничение для объекта Realm, которое не сохраняется с KVO.

Для сохраняемого объекта нет ограничений для наблюдения.

ПРИМЕЧАНИЕ:

Наблюдение за свойствами автономных экземпляров подклассов Object работает так же, как и с любым другим динамическим свойством, но обратите внимание, что вы не можете добавить объект в Realm (с помощью realm.add(obj) или других подобных методов), пока у него есть какие-либо зарегистрированные наблюдатели.

https://realm.io/docs/swift/latest/#key-value-observation

person kishikawa katsumi    schedule 17.03.2016