2016-12-02 10 views
10

ReactiveX.io documentationAnonymousDisposable का उपयोग करता है, जो RxSwift 2.x में था, लेकिन RxSwift 3.0 में एक अनसुलझा पहचानकर्ता है। इसके बजाय मुझे क्या उपयोग करना चाहिए?RxSwift 3.0 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

बनाने के लिए स्विफ्ट 3 में Observable की आप इस तरह से Disposables.create() के साथ पुराने AnonymousDisposable उदाहरण स्थानापन्न करने, की तरह है:

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

यदि आप चाहते हैं जब ऑब्जर्जेबल का निपटारा किया जाता है तो कुछ कार्रवाई करें, आप इसके बजाय पहले उल्लेख किए गए एक का उपयोग कर सकते हैं:

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

मुझे उम्मीद है कि यह आपकी मदद करेगा।

0

उपयोग:

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

ध्यान दें कि स्विफ्ट 2 से इस वाक्य रचना:

NopDisposable.instance 

भी

Disposables.create() 

इसके अलावा के साथ बदल दिया गया है, यह ध्यान रखें कि, हुड के नीचे दिलचस्प है, NopDisposable अभी भी मौजूद है, लेकिन सामने आ रहा है इस create विधि के माध्यम से। Here's the source

संबंधित मुद्दे