【发布时间】:2019-05-20 11:16:13
【问题描述】:
下面是我从 API 获取响应的代码 (Swift 4.2.1)。但是在调用它时显示一些错误,
无法分配“NSDictionary”类型的值?输入“字符串?”
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data, error == nil else {
return
}
let responseString = String(data: data, encoding: .utf8)
print("responseString = \(String(describing: responseString))")
do {
let jsonResponse = try JSONSerialization.jsonObject(with: data, options: []) as? NSDictionary
print(jsonResponse!)
responsevalue = jsonResponse
let alert1 = UIAlertController(title: "Alert", message: self.responsevalue, preferredStyle: UIAlertController.Style.alert)
let action1 = UIAlertAction(title: "Ok",style: .default)
{(ACTION)in
}
alert1.addAction(action1)
self.present(alert1, animated: true, completion: nil)
}catch let parsingError {
print("Error", parsingError)
let alert1 = UIAlertController(title: "Alert", message: parsingError as? String, preferredStyle: UIAlertController.Style.alert)
let action1 = UIAlertAction(title: "Ok",style: .default)
{(ACTION)in
}
alert1.addAction(action1)
self.present(alert1, animated: true, completion: nil)
}
}
task.resume()
【问题讨论】:
-
responsevalue = jsonResponse,这里我收到错误,无法分配“NSDictionary”类型的值?输入“字符串?”
-
你在哪一行得到了错误信息
-
JSON 响应:responseString = Optional("{\"status\":\"500\",\"msg\":\"用户名或密码不正确\"}") { msg = "用户名或密码错误”;状态 = 500; }