无法从NSDictionary获取objectForKey

时间:2013-05-12 13:58:28

标签: ios objective-c

我正在使用此代码: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; }

1 个答案:

答案 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(*)"]);