Alamofire 返回字符串值

Posted

技术标签:

【中文标题】Alamofire 返回字符串值【英文标题】:Alamofire return string value 【发布时间】:2015-09-03 07:15:33 【问题描述】:

我正在尝试编写一个方法来将来自 API 的 json 响应作为字符串返回。这是我的代码:

func authenticateUser(completionHandler: (responseObject: String?, error: NSError?) -> ()) 
    makeCall(completionHandler: completionHandler)


func makeCall(completionHandler: (responseObject: String?, error: NSError?) -> ()) 
    Alamofire.request(.GET, loginUrlString)
        .authenticate(user: "x", password: "y")
        .responseString  request, response, responseObject, error in
            completionHandler(responseObject: responseObject as? String, error: error)
    

我无法编译它,authenticateUser 方法中的 makeCall 调用显示“Extraneous argument label 'completionHandler' in call。

我看不出我的代码有什么问题?

【问题讨论】:

【参考方案1】:

试着打电话给makeCall(completionHandler)

从错误消息中,我猜这就是它所抱怨的。 Swift 函数标签的使用通常看起来不一致且令人困惑。

【讨论】:

它现在可以工作了,但是有一个问题,我如何从另一个类调用 authenticateUser?传递什么参数 我不太清楚你的意思——你在 Alamofire 模块/类上调用一个静态类方法,它生成一个请求,该请求作为返回传回。 Alamofire 使用方法链接(总是从调用它的方法返回原始对象)来允许链接多个调用,包括authenticate。如果要在另一个类中设置身份验证参数,则必须将返回的 Request 实例传递给它。

以上是关于Alamofire 返回字符串值的主要内容,如果未能解决你的问题,请参考以下文章

Alamofire 等待完成

如何使用 Alamofire/ObjectMapper 返回嵌入在字典中的 JSON 字符串?

为全局使用嵌套 Alamofire 回调或返回值

如何从 Alamofire 返回值

在 AlamoFire 框架中访问映射对象返回 nil 值

Alamofire 请求最初返回值,但在通过完成处理程序时被接收为 nil