我有以下代码:
let fetcher = DiagnosticFetcher(commandSender: sender)
fetcher.fetch()
.observeOn(MainScheduler.instance)
.subscribe(
onNext: { self.store.save(content: $0) },
onError: { self.view.showError("Error") },
onCompleted: { log.verbose("Diagnostic fetched") })
它无法编译:{{1}}。如果我使用Extra argument 'onError' in call
或onSuccess
代替onDoesNotExistButShowTheBug
,我会收到同样的错误。
onNext
方法返回fetch()
(其最后一个运算符为Observable<String>
)。似乎reduce
调用只需要一个lambda:
subscribe()
结果:fetcher.fetch()
.observeOn(MainScheduler.instance)
.subscribe(onNext: { self.store.save(content: $0) })
。和
Extraneous argument label 'onNext:' in call
编译好。
我觉得我得到了错误的fetcher.fetch()
.observeOn(MainScheduler.instance)
.subscribe({ self.store.save(content: $0) })
实施。我想要那个:
subscribe()
但显然,编译器没有。 我正在使用XCode 9.2和Swift 4以及RxSwift 4.1.1。
我的应用程序中有其他部分在可见的可观察区域使用public func subscribe(onNext: ((ElementType) -> Void)? = nil,
onError: ((Swift.Error) -> Void)? = nil,
onCompleted: (() -> Void)? = nil) -> Disposable {
。我无法理解这次电话的不同之处。
有关如何识别问题根源的想法吗?
答案 0 :(得分:4)
我通过指定onError
lambda中的第一个参数来编译它:
fetcher.fetch()
.observeOn(MainScheduler.instance)
.subscribe(
onNext: { self.store.save(content: $0) },
onError: { _ in self.view.showError("Error")})
答案 1 :(得分:0)
添加我的贡献。
我有同样的问题,但就我而言:
recordHeader.albumArray.asObservable()
.subscribe(onNext: { [weak self] value in
self?.populateView(recordHeader: value)
})
.disposed(by: disposeBag)
函数“ populateView”的值类型与value的值类型不匹配