2016-12-02 2 views
10

ReactiveX.io documentation использует AnonymousDisposable, который был в RxSwift 2.x, но является нерешенным идентификатором в RxSwift 3.0. Что я должен использовать вместо этого?Что такое эквивалент RxSwift 3.0 для AnonymousDisposable из 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) 
} 

ответ

14

Чтобы создать Observable «S в Swift 3 вы должны заменить старый AnonymousDisposable экземпляр с Disposables.create(), как таким образом:

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

Если вы хотите предпримите какие-либо действия, когда Observable настроен, вы можете использовать тот, который вы упомянули ранее:

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

Я надеюсь, что это поможет вам.

0

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

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

Обратите внимание, что этот синтаксис из Swift 2:

NopDisposable.instance 

также был заменен

Disposables.create() 

Помимо этого, интересно отметить, что под капотом, NopDisposable все еще существует, но подвергается с помощью этого метода create. Here's the source.