Swift OnNext在处理Observable.subscribe的结果时未调用

Swift OnNext在处理Observable.subscribe的结果时未调用,swift,rx-swift,Swift,Rx Swift,我订阅了一个可观察的,但是如果我在类中将一次性添加到DisposeBag,则永远不会调用onNext块 这是我的密码: @objc class AppleMusicPlaylistManager: NSObject { let disposeBag = DisposeBag() let playlists: [MPMediaPlaylist] = [] func importAppleMusicPlaylist() { playlists.forEac

我订阅了一个可观察的,但是如果我在类中将一次性添加到
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
,整个过程都是这样使用的
applemusicplaylmanager().importablemusicplaylist()

一切正常

disposeBag
的当前逻辑指出,在
disposeBag
处于活动状态之前,不会处理可观察对象

在您的示例中-
applemusicplaylimager().importaplemusicplaylist()
,创建一个管理器,然后在管理器解除分配时调用异步请求。因此,所有的可观察对象也都在释放


要使其正常工作,您必须将此管理器设置为共享,并使用以下方法:
applemusicplaylmanager.shared.importalemusiclaylist()
或将此管理器保存到某个属性,以便不立即解除分配。

由于您的
订阅
返回一个
可处置的
只需将其分配给某个变量,然后在以后当您的对象获得
deinit
@Lamar时,根据我对RxSwift的理解,这正是
DisposeBag
所做的。我是不是遗漏了什么?