我遇到了错误(在主题中说明),因为有时属性“id”不会在返回的 json 中存储包含“$oid”的散列。例如
有时我得到:
"id":{"$oid":"4eea972209f47a0028000140"}
有时我得到
"id":"4eea972209f47a0028000140"
我正在尝试检查以下代码以解决此类不规则问题
if ([[question valueForKey:@"id"] valueForKey:@"$oid"])
{
question_id = [[question valueForKey:@"id"] valueForKey:@"$oid"];
}
else
{
question_id = [question valueForKey:@"id"];
}
但是,它仍然无法正常工作,因为代码在检查阶段失败了。
我如何实现检查,以便仅当“$oid”存在时我才从它获取 question_id?
最佳答案
试试下面的代码。
id quesDict = [question valueForKey:@"id"];
if( [quesDict isKindOfClass:[NSDictionary class]] )
{
question_id = [quesDict valueForKey:@"$oid"];
}
else
{
question_id = quesDict;
}
关于objective-c - 如何处理 '[<__NSCFString 0x2f1730> valueForUndefinedKey:]: this class is not key value coding-compliant for the key $oid' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8754860/