次の設定を使用して、APIからオブジェクト(GitHubなど)を取得します。これは正常に動作します。RxSwiftで定期的に更新する
let provider: RxMoyaProvider<GitHub>
let issues: Driver<[IssueViewModel]>
init(provider: RxMoyaProvider<GitHub>) {
self.provider = provider
issues = provider.request(.Issue)
.mapArray(Issue.self, keyPath: "issues")
.asDriver(onErrorJustReturn: [])
.map { (models: [Issue]) -> [IssueViewModel] in
let items = models.map {
IssueViewModel(name: $0.name,
description: $0.description
)
}
return items
}
}
ここで定期的に問題のリストを更新したいと思います(20秒ごとなど)。私はこのタスクを達成するためにNSTimer
を考えましたが、私は考えていなかったきれいな解決策(つまり、Rx方式)があると思います。
正しい方向のヒントは高く評価されます。
これは素晴らしいです、ありがとう! .Issueは '.Issue(id:issueId)'などのパラメータを期待しています。 'flatMapLatest'(' issueId'はストアドプロパティです)でこれを参照する方法は? – tilo
ブロック内で '.flatMapLatest {[weak self] _ in'を使用し、' self?.issueId'を使用します。 – solidcell
完璧、ありがとう! – tilo