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()行的问题。我继续得到'类型'字符串'的价值不符合'强制'中的'任何'。我不确定如何将其格式化为更好的一行。
答案 0 :(得分:0)
你自己一个忙,不要在\()内部转储复杂的表达式
做
let sid = jsonResult["sessionID"] as whatever
然后
Log.debug("Made request with \(sid)...
我有这个'String'在另一个地方不符合'Any' 情况比你
并且使用了一个笨拙的冗长版本,可以看到我的会话ID等同于它的类型(类型)。
一旦我停止将所有内容放到厨房,并考虑到那个看起来很聪明的字符串(外推法)中,我就会遇到与swift编译器不同的,更友好的错误。
假设swift编译器很笨:它确实比看起来暗,所以请参见上文。