RxSwift kullanmaya başladığımda, BaseViewController
oluşturmak ve RxSwift kullandığım tüm denetleyicilerimle genişletmek için kullanılır. BaseViewController.swift kod:Nasıl Kullanılır RxSwift ile projede tek kullanımlık ürünler doğru mu?
class BaseViewController: UIViewController {
var mSubscriptions: CompositeDisposable?
func addSubscription(subscription: Disposable){
if(mSubscriptions == nil){
mSubscriptions = CompositeDisposable()
}
if let mSub = mSubscriptions{
mSub.addDisposable(subscription)
}
}
func unsubscribeAll(){
if let mSub = mSubscriptions{
mSub.dispose()
mSubscriptions = nil
}
}
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
unsubscribeAll()
}
deinit{
unsubscribeAll()
}
}
Ve AddSubscription kullanmak (: _) Çocuğum kontrolörleri her yerde yöntemi. Örneğin gelen kodu parçasıdır:
class TasksViewController: BaseViewController{
overrided func viewWillAppear(){
//...
var subscribe = dataLoader.load(requestNetwork, dataManager: taskDataManager)
.observeOn(ConcurrentDispatchQueueScheduler(queue: queue))
.subscribe({ (event) -> Void in
//...
})
addSubscription(subscribe!)
}
}
Ben BaseViewController ne kullanmıyorsanız ve sadece bu disposeBag için tüm abonelikler her denetleyicisi DisposeBag()
bir örneğini oluşturmak ve eklemek? Tek kullanımlık malzemeyi nasıl düzeltmeliyim?
Çok teşekkür ederim. Belki de RxSwift ile ilgili bazı eğitimlere tavsiyede bulunabilirsiniz? Çünkü bu konuda az bilgi var. – Marina
Kesinlikle Yea. "RxExample" adlı RxSwift yanıtında örnek uygulamaya bakın. Sadece simülatörde çalıştırın. Ayrıca, RxSwift repo, çoğu operatörün küçük örneklerine sahip bazı harika Oyun Sayfalarına sahiptir. – solidcell
@Marina Bu seri, RxSwift'e 4 yazıyla http://www.thedroidsonroids.com/blog/ios/rxswift-by-examples-1-the-basics/ adresinde mükemmel bir giriş niteliğindedir. –