RxSwift : BehaviorRelay in place of Variable usage

旧街凉风 提交于 2019-12-22 10:57:01

问题


I'm new to RxSwift and reading about subjects, I tried Variable Subject. Which in turns giving Warning in console

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

Earlier I have declared Variable like this

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

So i have done basic array operations from it's property called value as it was get set property like

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

Now After getting warning i changed it to BehaviorRelay like

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

So I got error that value is get property only.

I googled alot but can't get suitable explanations for Array operations.

I only got a code self.searchItems.accept(items) which i really don't know what it exactly do add fresh items or append.

I needed how all 4 operations will be performed when using BehaviorRelay?


回答1:


1) Remove all

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

2) Append item

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

3) Value = ...

self.searchItems.value.accept(items)



回答2:


Use accept.

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

etc...



来源:https://stackoverflow.com/questions/52793150/rxswift-behaviorrelay-in-place-of-variable-usage

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!