RxSwift:BehaviorRelay代替变量用法

时间:2018-10-13 12:53:30

标签: ios arrays swift rx-swift

我是RxSwift的新手,正在阅读有关主题的文章,因此尝试了ON Employee.ENumber = Num_Projects.ENumber主题。依次在控制台中发出警告

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

所以我得到一个错误,即值仅是获取属性

我在Google上搜索了很多,但是无法获得有关Array操作的适当说明。

我只有一个代码var searchItems = BehaviorRelay<[MyClass]>(value: []) ,我真的不知道它究竟是什么添加了新项目或附加了。

我需要使用self.searchItems.accept(items)时如何执行全部4个操作?

2 个答案:

答案 0 :(得分:4)

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)

答案 1 :(得分:3)

使用accept

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

等...