2016-12-02 31 views
10

ReactiveX.io documentation używa używa AnonymousDisposable, który był w RxSwift 2.x, ale jest nierozwiązanym identyfikatorem w RxSwift 3.0. Co powinienem zamiast tego użyć?Co to jest odpowiednik RxSwift 3.0 dla AnonymousDisposable z RxSwift 2.x?

let source = Observable.create { observer in 
    for i in 1...5 { 
    observer.on(.Next(i)) 
    } 
    observer.on(.Completed) 

    // Note that this is optional. If you require no cleanup you can return 
    // NopDisposable.instance 
    return AnonymousDisposable { 
    print("Disposed") 
    } 
} 

source.subscribe { 
    print($0) 
} 

Odpowiedz

14

Aby utworzyć Observable JEST W Swift 3 trzeba zastąpić stary AnonymousDisposable wystąpienie z Disposables.create(), jakby w ten sposób:

let source = Observable.create { observer in 
    observer.on(.next(1)) 
    observer.on(.completed) 
    return Disposables.create() 
} 

jeśli chcesz podejmij działanie, gdy usuwane jest Observable, możesz zamiast tego użyć:

return Disposables.create { 
    print("Disposed")  
} 

Mam nadzieję, że ci to pomoże.

0

Zastosowanie:

return Disposables.create { 
    print("Disposed")  
} 
0

Zauważ, że ta składnia z Swift 2:

NopDisposable.instance 

został również zastąpiony

Disposables.create() 

poza tym, to warto zauważyć, że pod maską, NopDisposable nadal istnieje, ale jest narażona za pomocą tej metody create. Here's the source.