ios - Alamofire 的 CompletionHandler

标签 ios swift alamofire completionhandler

我正在尝试返回响应JSON

static func getAllPersons(completionhandler:@escaping (Any) -> ()){
    let URL = baseURL + "api/person"
    Alamofire.request(URL).responseJSON {
        response in
        completionhandler(response.result.value as Any)
    }
}

但是如果我尝试将responseJSON存储在“res”中,它将不起作用:

var res: Any = ""
PersonResource.getAllPersons{ (result) in
    res = result
}
print(res)

致以诚挚的问候

最佳答案

response.result.value 是可选的,因此尝试返回 Any?。但这是更好的方法:

static func getAllPersons(completionhandler:@escaping ([String: Any]?, Error?) -> ()){
    let URL = baseURL + "api/person"
    Alamofire.request(URL).responseJSON {
        response in
        if let json = response.result.value as? [String: Any] {
                completionhandler(json, nil)
        }
        else if let error = response.result.error as Error? {
                completionHandler(nil, error)
        }
    }
}

关于ios - Alamofire 的 CompletionHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42781026/

相关文章:

ios - 在从 UIViewController 调用的非保留完成中引用 self 时,weakSelf/strongSelf 舞蹈真的有必要吗?

ios - 柯南错误 :I need to cross build packages for os:iOS with my Macos, 但是当第一个包完成时,它在测试时破坏了我的 cpt

ios - 如何让数据管理器告诉 View Controller 重新加载集合

swift - 如何让UIViewController从下往上滑动而不褪色之前的 View ?

objective-c - iOS:控制两个复选框

ios - 每当在 iPhone X 中按下 ViewController 时,TabBar 都会向上移动

ios - 结合pickerView点击 "Done"按钮后向服务器请求

swift - 使用 Alamofire 持续检查互联网连接

ios - 使用 Swift 以不同名称保存文件

Swift 3、RxAlamofire 和映射到自定义对象