【发布时间】:2017-09-12 14:28:31
【问题描述】:
我订阅了一个 observable,但如果我将一次性添加到我班级的 DisposeBag 中,则永远不会调用 onNext 块。
这是我的代码:
@objc class AppleMusicPlaylistManager: NSObject {
let disposeBag = DisposeBag()
let playlists: [MPMediaPlaylist] = []
func importAppleMusicPlaylist() {
playlists.forEach { applePlaylist in
applePlaylist.getItunesStoreTracks().subscribe(onNext: { tracks in
// Doing things here
}).addDisposableTo(disposeBag)
}
}
}
其中getItunesStoreTracks 返回一个RxSwift.Observable<[SoundsMusicITunesStore]>,整个事情就像AppleMusicPlaylistManager().importAppleMusicPlaylist() 一样使用
【问题讨论】:
-
因为你的
subscribe返回一个disposable只是将它分配给某个变量,然后当你的对象得到deinit时处理它 -
@Lamar 根据我对 RxSwift 的理解,这正是
DisposeBag正在做的事情。我在这里错过了什么吗?