RxSwift: BehaviorRelay вместо использования переменной - PullRequest
0 голосов
/ 13 октября 2018

Я новичок в RxSwift и, читая темы, я попробовал Variable Тема.Который по очереди выдает предупреждение в консоли

ℹ️ [DEPRECATED] `Variable` is planned for future deprecation. Please consider `BehaviorRelay` as a replacement. Read more at: https://git.io/vNqvx

Ранее я объявил Variable вот так

var searchItems = Variable<[MyClass]>([])

Итак, я выполнил базовые операции с массивами из его свойства, называемого value, так какбыло get set свойство как

 1. self.searchItems.value.removeAll()
 2. self.searchItems.value.append(items)
 3. self.searchItems.value = items

Теперь После получения предупреждения я изменил его на BehaviorRelay как

var searchItems = BehaviorRelay<[MyClass]>(value: [])

Так что я получил ошибку, что значение это только получить свойство .

Я много гуглил, но не могу получить подходящие объяснения для операций с массивами.

Я получил только код self.searchItems.accept(items), который я действительно не знаю, что именно добавить свежуюпункты или приложения.

Мне нужно было, как будут выполняться все 4 операции при использовании BehaviorRelay?

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

1) Удалить все

var array = self.searchItems.value
array.removeAll()
self.searchItems.accept(array)

2) Добавить элемент

self.searchItems.value.accept(searchItems + [items])

3) Значение = ...

self.searchItems.value.accept(items)
0 голосов
/ 13 октября 2018

Использование accept.

var value = searchItems.value
value.removeAll()
searchItems.accept(value)

и т. Д. *

...