试图找出原因,因为我试图删除整个 onError block ,它导致了 onCompleted block 的错误。
public static func register(phone_number: String, password: String) -> Observable<(HTTPURLResponse, NSDictionary)> {
/*
Registers a user using their phone number and password
*/
let parameters: Parameters = ["phone_number": phone_number, "password": password]
return Observable.create({ (observer) -> Disposable in
Alamofire.request(Router.register(parameters: parameters))
.rx
.responseJSON()
.subscribe(onNext: { (response, json) in
if let data = json as? NSDictionary {
if let returned_phone_number = data["phone_number"] as? String
{
if returned_phone_number == phone_number {
print("success")
} else {
print(returned_phone_number)
}
}
observer.on(.next(response, data))
}
}, onError: { (error) in \\ error here 'extra argument "onError" calls'
observer.on(.error(error))
}, onCompleted: { (response) in
observer.on(.completed)
}, onDisposed: nil)
})
}
最佳答案
问题出在您的 onCompleted
闭包中。它不能有任何参数,而在您的代码中它有一个 (response)
。您可以将其更改为
onCompleted: {
observer.on(.completed)
}
关于ios - 迁移到 Swift 4 后 RxSwift 'Extra argument ' onError',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49926336/