RxSwift驱动程序订阅弱?

时间:2018-08-03 18:21:48

标签: ios swift rx-swift rx-cocoa

我一直在寻找一种更简单的方法来将函数作为参数传递给Observable的subscribe方法,而不会引起保留周期;我不想总是每次都使用[weak self]。我刚刚遇到了这个answer,而这正是我想要的。更好的是,它已经被合并到框架本身中。但是,我似乎没有为Driver找到类似的方法。

它已经实施了,我只是在找错地方了?如果没有,您可以指导我如何添加吗? ...作为旁注,您通常如何处理所有[weak self]处的所有内容?

1 个答案:

答案 0 :(得分:0)

  

请注意,您通常如何处理所有[weak self]处的所有内容?

我很少使用subscribe,因此我不需要[weak self]。尽可能使用bind(to:),而您不必担心自己。另一种选择是建立本地引用并使用它。例如:

let foo = self.foo
myObservable.subscribe(onNext: {
    // Use of 'foo' here will refer to the local foo, not self.foo.
    // Of course if foo is a class type, they will both refer to the 
    //   same object so that's fine.
    // No weak self necessary because self isn't part of the chain.
})