我正在使用此代码: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; }
答案 0 :(得分:1)
我没有使用该项目,但是从https://github.com/valentinlietz/MySQL-Connect/blob/master/MySQL.m我看来response.responseDictionary
是结果
将脚本https://github.com/valentinlietz/MySQL-Connect/blob/master/mysql.php的JSON响应转换为Foundation对象。
代码
while($row = mysql_fetch_array($query))
{
for($i = 0; $i < 50; $i++) {
$arr2[$fields[$i]] = $row[$fields[$i]];
}
array_push($return_arr, $arr2);
}
echo json_encode($return_arr);
该PHP脚本显示响应是字典数组。
因此,如果我是正确的,responseDictionary
属性的名称和类型选择错误,因为它不是NSDictionary
,而是NSArray
,其中每个对象都是NSDictionary
1}},
以下应该有效:
NSArray *responseArray = (NSArray *)response.responseDictionary;
NSLog(@"count = %@", [[responseArray objectAtIndex:0] objectForKey:@"COUNT(*)"]);