身份验证服务错误中的完成处理程序
Posted
技术标签:
【中文标题】身份验证服务错误中的完成处理程序【英文标题】:Completion handler in authentication service error 【发布时间】:2018-04-17 10:58:36 【问题描述】:我正在执行登录操作并调用具有方法的自定义身份验证服务,该方法接收用户名和密码字典并执行 API 调用。 Auth服务中的功能如下图所示。
func loginWithUserData(userData: Dictionary<String, Any> ,completion: @escaping (_ success:DataResponse<Any>)->Void)
NetworkManager.sharedNetworkManager.performNetworkOperation(url: myEndpoint().userSession(), httpmethod: .post, parameters: userData) response in
completion(response)
我调用Auth服务的函数如下:
func performLoginAction(dictForLogin: [AnyHashable: Any])
AuthenticationService().loginWithUserData(userData: dictForLogin as! Dictionary<String)
Xcode 抱怨我的 performLoginAction 函数中的参数缺少参数。我不知道在完成中添加什么:参数。完成处理程序的格式是什么或我应该返回什么?
注意:我使用的是 Swift 3。
【问题讨论】:
【参考方案1】:您必须添加完成处理程序
func performLoginAction(dictForLogin: [AnyHashable: Any])
AuthenticationService().loginWithUserData(userData: dictForLogin as! Dictionary<String, Any>, completion: success in
// do something with the `DataResponse<Any>` object
)
或使用尾随闭包语法:
func performLoginAction(dictForLogin: [AnyHashable: Any], )
AuthenticationService().loginWithUserData(userData: dictForLogin as! Dictionary<String, Any>) success in
// do something with the `DataResponse<Any>` object
【讨论】:
完美。谢谢!【参考方案2】:你可以用这个-
func performLoginAction(dictForLogin: [[String: Any]])
AuthenticationService().loginWithUserData(userData: dictForLogin as! [[String: Any]]) response in
【讨论】:
以上是关于身份验证服务错误中的完成处理程序的主要内容,如果未能解决你的问题,请参考以下文章
使用 Firebase 身份验证的 Flutter 应用程序中的 Google sign_in_failed 错误
在 tomcat 404 错误处理程序中可用的 ACEGI 身份验证
动态 Web 项目中的谷歌日历 api (java) 身份验证错误
在 Spring Security 中处理基本身份验证的未经授权的错误消息