我正在尝试像这样解析 JSON 格式:
{
"key_1" : {
"key_2" : "value"
}
}
然后将“值”
赋给一个变量。
这是我的代码:
var variableShouldBeAssigned: String
if let x = (jsonResult["key_1"]? as? NSDictionary) {
if let y = (x["key_2"]? as? String) {
variableShouldBeAssigned = y
}
}
但是,当我尝试从 x["key_2"]?
向下转换为字符串时发生错误,但是从 jsonResult["key_1"]?
向下转换没问题。 code> 到 NSDictionary。
我可以通过使用 x["key_2"]
替换 x["key_2"]?
来解决错误,但我真的不知道为什么它只适用于 jsonResult["key_1"]?
。
谁能告诉我原因吗?
最佳答案
String 不符合 NSCopying,但 NSString 肯定符合! 此外,从 NSString 到 String 是瞬时暗示的......
所以我会说尝试这样的事情...将 String 更改为 NSString
这是一个示例,假设您将 jsonResult 作为 NSDictionary 来处理...
func giveDictionary(jsonResult:NSDictionary) -> String?
{
if let x = (jsonResult["key_1"]? as? NSDictionary)
{
if let y = (x["key_2"]? as? NSString)
{
return y
}
}
return nil
}
关于ios - 类型 'String' 不符合协议(protocol) 'NSCopying' 向下转换 AnyObject 到 String 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24988121/