0

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

1 回答 1

1

我没有使用过那个项目,但是从https://github.com/valentinlietz/MySQL-Connect/blob/master/MySQL.m看来,这response.responseDictionary是转换脚本https 的 JSON 响应的结果: //github.com/valentinlietz/MySQL-Connect/blob/master/mysql.php到 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,并且以下应该起作用:

NSArray *responseArray = (NSArray *)response.responseDictionary;
NSLog(@"count = %@", [[responseArray objectAtIndex:0] objectForKey:@"COUNT(*)"]);
于 2013-05-12T17:21:23.447 回答