【发布时间】:2013-05-12 13:58:28
【问题描述】:
我正在使用此代码:https://github.com/valentinlietz/MySQL-Connect 在目标 c 中使用 MySQL 查询。我使用 Count(*) 来检查该行是否已经存在。
我把这段代码用于 NSLog();这本词典。代码:
for(NSArray *row in response.responseDictionary){
NSLog(@"%@", row);
}
结果:
{
"" = "<null>";
"COUNT(*)" = 0;
}
但是当我使用[response.responseDictionary objectForKey:@"COUNT(*)"]; 时,它会返回发送到实例的未识别选择器。
更新:
行:
Row: ( { "" = "<null>"; "COUNT()" = 0; } )
字典:
Row: { "" = "<null>"; "COUNT()" = 0; }
【问题讨论】:
-
这意味着您发送的对象“objectForKey”实际上不是 NSDictionary。请提供您用于调用此方法的实际代码。
-
您确定这是您实际使用的代码吗?如果
response.responseDictionary是字典,那么您将遍历字典中的键。您将键视为数组,调试输出表明它们是字典。这没有任何意义。 -
[response.responseDictionary class] 记录 NSArray,但 .responseDictionary 暗示它是 NSDictionary 对吧?
-
这里有点不对劲。您将上面的“结果:”列表(这似乎是一个 NSDictionary,虽然很奇怪)作为
row的表观值给出,显然是 NSArray 的一个元素,但随后您将row扔掉(这是,顺便说一句,错误声明为 NSArray)并尝试访问原始对象response.responseDictionary,就好像它是字典一样。我认为你真的需要退后一步,试着理解你在做什么。 -
我确实尝试了一些不同的东西,并在不同的元素上回答了它们。它是 NSArray 的一部分,但如果正确,则 NSArray 包含 NSDictionary,但我仍然无法获取 ObjectAtIndex。此外,这只是库中的一个代码示例。
标签: ios objective-c