簡體   English   中英

如何創建像Alamofire響應這樣的阻止響應?

[英]How to create a block response like Alamofire Responses?

可能這個問題是愚蠢的,但是我一直在尋找一種創建可選響應(如Alamofire 4.0)的方法(例如responseJSON,responseData,responseString等)。 例如,在我的項目中,我有BaseService,該服務發出請求(使用alamofire),然后處理響應(對於erros,如果有,它將調用異常類,該異常類顯示一條消息,表明流程中斷)。 因此,我有一些繼承自BaseService的子類,並且我的方法具有完成功能塊,這些功能塊可以解析並傳遞來自BaseService的任何數據(如果需要,也可以出錯)。

然后,我的問題是:我的BaseService請求函數可能返回(作為塊)響應,json或錯誤,例如:complementHandler(response,json,error)或completionHandler(nil,json,nil)

因此,當我不需要響應或json時,只想驗證錯誤是否為零,我就必須這樣做:

myFunc(){(}中的(_ _,error)

我該怎么做才能只得到我想要的塊? 像Alamofire一樣回應他嗎?

您可以將BaseService類中的完成處理程序划分為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





                            })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM