【发布时间】:2018-10-25 10:02:41
【问题描述】:
我是 swift 新手,我正在使用 alamofire 方法调用 API。我已成功获得响应,但无法理解如何在标签上解析这是我尝试过的代码
Alamofire.request(url, method: .get).responseJSON
{
response in
let result = response.result.value
print(response)
if result != nil{
let data = result as! [String : AnyObject]
let userdata = data["data"] as! NSDictionary
let address = userdata["address"]
let city = userdata["city"]
let pincode = userdata["pincode"]
let state = userdata["state"]
self.lblAddress.text = city as? String
self.lblCity.text = address as? String
self.lblpincode.text = pincode as? String
self.lblstate.text = state as? String
}
}
这是我收到的回复
SUCCESS: {
"city_address" =
(
{
address = "404 palladium business hub.";
city = Ahmedabad;
pincode = 380061;
state = Gujarat;
}
);
}
无法理解我哪里出错了,请帮我解决这个问题。
print(result) 的输出
{
"city_address" = (
{
address = "404 palladium business hub.";
city = Ahmedabad;
pincode = 380061;
state = Gujarat;
}
);
}
【问题讨论】:
-
使用 Codable 将 json 响应映射到您的模型。
-
你崩溃了,不行,给错误信息?我在您的代码中没有看到键“city_address”。该值是一个数组顺便说一句。守卫让地址=数据作为? [字符串:任何],让地址 = 地址。第一为? [String: Any]`,然后不使用
userdata,而是使用address。但总的来说,避免使用强制解包、NSStuff(如 NSDictionary),并始终在主线程中更新 UI。最后,推荐使用 Swift 4 中的 Codable。