ios - 如何创建像 Alamofire Responses 这样的 block 响应?

标签 ios swift alamofire completionhandler

可能这个问题很愚蠢,但我一直在寻找一种方法来创建像 Alamofire 4.0 那样的可选响应(例如 responseJSON、responseData、responseString 等)。例如,在我的项目中,我有 BaseService 发出请求(使用 alamofire)然后处理响应(对于错误,如果有,它会调用一个异常类,它显示一条消息并中断流程)。因此,我有从我的 BaseService 继承的子类,我的方法有完成 block ,用于解析和传递来自 BaseService 的任何数据(或错误,如果需要)。

然后,我的问题是:我的 BaseService 请求函数可能返回(作为 block )响应、json 或错误,例如:completionHandler(response,json, error) 或 completionHandler(nil, json, nil)

所以当我不需要响应或 json 时,只想验证错误是否为 nil 我必须这样做:

myFunc() { ( _ , _,错误) }

如何才能只获得我想要的 block ?像 Alamofire 那样处理他的响应?

最佳答案

您可以将 BaseService 类中的 completionHandler 划分为每个服务函数,以 onSuccessonFail ... 等

示例:

    func logInUser( _ userEmail : String, userPassword : String, onSuccess: @escaping (Any?)-> Void, onFail : @escaping (Error?) ->(Void))  {

    let url : URLConvertible = urls.loginUser

    let parameters = ["email" : userEmail, "password" : userPassword]

    let header = ["Authorization" : APPSECRETKEY ]

    alamofireManager.request(url, method: .post, parameters: parameters, encoding: URLEncoding.default, headers: header).responseJSON(completionHandler: { response in

        if response.result.value != nil && response.result.error == nil {

        onSuccess(response.result.value)

        }
        else
        {
          onFail(response.result.error)

        }
    })

}

当您调用服务函数时:

    BaseService.sharedInstance.logInUser("email", userPassword: "password",

                            onSuccess: { responseValue in



                            },

                            onFail: { error in





                            })

关于ios - 如何创建像 Alamofire Responses 这样的 block 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42959924/

相关文章:

json - 解析 Alamofire json 响应

ios - XCode 7.3 和 Swift 2.2 中没有这样的模块 'Alamofire'

iphone - iOS 上的 WebP 图片格式

ios - 动态物体之间的 Box2d 碰撞

ios - alamofire 在 SessionManager 中更新 JWT header

ios - 如何在 swift 中仅对一种字符组合设置字距调整?

ios - 我已将我的应用程序从 swift 2.3 升级到 swift 3.0,我在解决有关上传请求的 Alamofire 问题时面临一个大问题

ios - JSON 很好地进入字典,但 objectForKey 错误

ios - 如何在 swift 中从字节数组创建位图图像

swift - 使用计时器定期更新 NSTableCellView 内的文本字段