ios - 迁移到 Swift 4 后 RxSwift 'Extra argument ' onError'

标签 ios swift xcode rx-swift

试图找出原因,因为我试图删除整个 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/

相关文章:

ios - 居中对齐 UILabel 文本?

ios - 带有 cast 的快速可选链接

objective-c - NSTextField 的子类化

xcode - 屏幕上显示的 iAd Swift 2 广告

ios - 实现这个的好方法?

ios - 使用本地主机 HTTPS 连接测试 iOS 应用程序不工作

swift - 使用 contentOfFile 方法的 NSDictionary 未在 Swift 中构建

swift - 核心数据在存在时更新现有对象

iphone - 如果标签相等,则更改 View

ios - 触摸按钮时显示发光