gpt4 book ai didi

swift - 处理 Observable.subscribe 的结果时不调用 OnNext

转载 作者:行者123 更新时间:2023-11-28 15:19:56 24 4
gpt4 key购买 nike

我正在订阅一个 observable,但是如果我将一次性添加到 DisposeBag在我的课上,onNext block 永远不会被调用。

这是我的代码:

@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()

最佳答案

一切都按预期工作。

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

在您的情况下 - AppleMusicPlaylistManager().importAppleMusicPlaylist(),您创建了一个管理器,然后调用异步请求,同时管理器正在取消分配。因此,所有可观察量也都在释放。

为了使其正常工作,您必须将此管理器设置为 shared 并使用此方法:AppleMusicPlaylistManager.shared.importAppleMusicPlaylist() 或保存此管理器一些属性(property),以免立即解除分配。

关于swift - 处理 Observable.subscribe 的结果时不调用 OnNext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46179068/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com