let jsonResult = try JSONSerialization.jsonObject(with: jsonData, options: JSONSerialization.ReadingOptions.mutableContainers) as! [String : Any]
let jsonString = jsonResult.map {
return ($0.key, "\($0.value)" == "<null>" || "\($0.value)" == "nil" ? "null" : "\($0.value)")
}
httpPOST(to: "\(postURL)/process/", withData: [("user" , userID), ("password", password)] + jsonString) {
reply in
Log.debug("Made request with \(jsonResult["sessionID"] as Optional) replyed \(reply as Optional)" as Any)
}
我遇到了 Log.debug() 行的问题。我不断收到'类型'字符串'的值在强制中不符合'任何'。我不确定如何将其格式化为更好的行。
最佳答案
帮自己一个忙,停止在\() 中倾倒复杂的表达式
做
let sid = jsonResult["sessionID"] as whatever
然后
Log.debug("Made request with \(sid)...
我在不同的地方遇到过这个“字符串”不符合“任何”的情况
比你的情况
并且有一个更笨拙的详细版本允许看到我的 session ID 是什么(类型)。
一旦我停止将所有内容和厨房考虑到那个看起来很聪明的字符串(外推)中,我就会从 swift 编译器中得到一个不同的、更友好的错误。
假设 swift 编译器是愚蠢的:它确实比看起来更愚蠢,因此,请参见上文。
关于json - 类型 'String' 的值在强制中不符合 'Any',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46980090/