使用 swift 5 请求 AlamoFire url
Posted
技术标签:
【中文标题】使用 swift 5 请求 AlamoFire url【英文标题】:request an AlamoFire url using swift 5 【发布时间】:2020-06-15 15:57:18 【问题描述】:我刚刚发现这个方法写回去我将AlamoFire.request
更改为AF.request
和.responseSwiftyJSON (dataResponse) in
更改为.responseJSON(completionHandler: (dataResponse) in
我确实复制了它但我正在尝试使用它,我不熟悉alamoFire这是我第一次使用它时,任何人都可以更新此方法以从 AlamoFire 请求 URL
我只是面临这些错误
1- isSuccess' 由于“内部”保护级别而无法访问
2-“结果”类型的值没有成员“值”
3- isFailure' 由于“内部”保护级别而无法访问
4-“结果”类型的值没有成员“错误”
@objc func searchPlaces(query: String)
let urlStr = "\(MapBox.mapbox_api)\(query).json?access_token=\(MapBox.mapbox_access_token)"
AF.request(urlStr, method: .get, parameters: nil, encoding: URLEncoding.default, headers: nil).responseJSON(completionHandler: (dataResponse) in
if dataResponse.result.isSuccess
let resJson = JSON(dataResponse.result.value!)
if let myjson = resJson["features"].array
for itemobj in myjson ?? []
try? print(itemobj.rawData())
do
let place = try self.decoder.decode(Feature.self, from: itemobj.rawData())
self.searchedPlaces.add(place)
self.tableView.reloadData()
catch let error
if let error = error as? DecodingError
print(error.errorDescription)
if dataResponse.result.isFailure
let error : Error = dataResponse.result.error!
)
【问题讨论】:
【参考方案1】:对于isSuccess
(1)、isFailure
(3),您实际上可以打开response.result
。对于响应结果中的value
(2),您可以在response.value
下找到它,最后但并非最不重要的是,error
(4) 在开关中可用,请查看下面的示例代码,它突出显示了所有使您的代码工作的相关信息:
AF.request(urlStr, method: .get, parameters: nil, encoding: URLEncoding.default, headers: nil)
.responseJSON(completionHandler: response in
switch response.result
case .success:
let resJSON = JSON(response.value)
...
case .failure(let error):
print(error)
)
【讨论】:
以上是关于使用 swift 5 请求 AlamoFire url的主要内容,如果未能解决你的问题,请参考以下文章