'subscribe(onNext:onError:onCompleted:onDisposed :)的调用结果未使用

问题描述 投票:0回答:1

我试图创建使用RxAlamofire返回Observable 的函数:

func getResponse(credentialData: Credentials, ulr: String)->Observable<(HTTPURLResponse, Any)>{
        let credentialData = "\(credentialData.username):\(credentialData.password)".data(using: String.Encoding(rawValue: String.Encoding.utf8.rawValue))!
        let base64Credentials = credentialData.base64EncodedString()
        let headers = ("Authorization", "Basic \(base64Credentials)")
        let header = HTTPHeaders.init(dictionaryLiteral: headers)

        return Observable.create{ observer in
            requestJSON(.get, ulr, parameters: nil, encoding: JSONEncoding.default, headers: header)
            .subscribe(onNext: { response in
                observer.onNext(response)
                } ,
        onError: { error in
            observer.onError(error)
            })
        return Disposables.create()
        }
    }    
}

但我得到警告:

[subscribe(onNext:onError:onCompleted:onDisposed :)的调用结果”未使用

如何解决?添加.disposed(by: disposeBag)后功能不起作用。

swift rx-swift rxalamofire
1个回答
0
投票

您好,您必须将请求添加到DisposeBag中:

return Observable.create { observer in
        requestJSON(.get, ulr, parameters: nil, encoding: JSONEncoding.default, headers: header)
            .subscribe(onNext: { response in
                observer.onNext(response)
            }, onError: { error in
                observer.onError(error)
            }).disposed(by: disposeBag)
        return Disposables.create()
    }

应该可以。

© www.soinside.com 2019 - 2024. All rights reserved.