首页 > 解决方案 > 如何在 Alamofire 中使用 UITextField?

问题描述

我最近开始在 URLSession 上使用 Alamofire 只是为了适应它并切换到更易读的简单代码库。我正在创建一个应用程序,其中有一个 UITextField,每当用户写东西并点击返回时,它都会通过 API 搜索特定数据。我现在想先将该数据打印到控制台中,但我不知道该怎么做。如何从我的模型中搜索任何特定数据?

编辑:基本 URL 如下所示:“ https://api.themoviedb.org/3/search/movie?api_key=[API_KEY] ”。要搜索特定标题,我们添加“&query=[电影名称]”。如何将查询的最后一部分添加到用户在文本字段中输入的内容中?

PS:我为我的模型使用了 ObjectMapper。

标签: iosswiftxcodealamofireobjectmapper

解决方案


如果我们像这样得到默认的 API 调用响应为 json

"success" : true,
"message" : "successfull"
"data" : {
       "field1" : "some data"
       }
}

所以我们可以像这样处理这个响应

AF.request(URL(string: "myurl.com")!,
               method: .get, 
               headers: AppConstants.headers)
        .validate(statusCode:200..<300)
        .validate(contentType:[AppConstants.contentTypeJson])
        .responseJSON { (response) in
            switch response.result {
            case .success(let data):
                guard let json = data as? [String:AnyObject] else {
                    return
                }

                let isSuccess =  (json["success"])?.boolValue ?? false
                if isSuccess {
                    print(json) //You can do something with response
                }else{
                    Data.currentError = (json["message"]) as? String ?? "-"
                }

            case .failure(let error):
                print(error)
            }
    }

更多信息:https ://github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md#response-handling


推荐阅读