服务器端执行 SQL 查询(服务器是用 python 编写的)返回一个 json,如下所示:
return HttpResponse(json.dumps([{"data":output, "total":theResult}]), content_type ='application/json')
output
是内部方法的结果返回,并且已经像这样序列化:
output = serializers.serialize('json',p_list,fields=('price','publishdate','size'))
客户端成功接收响应,success:^(AFHTTPRequestOperation *operation, id responseObject)
使用AFHTTPRequestOperationManager
这就是responseObject
调试控制台中的样子(lldb)
po responseObject
<__NSCFArray 0x116fa6190>(
{
data = "[{\"pk\": 817, \"model\": \"xx\", \"fields\": { \"price\": \"3300\", \"publishdate\": \"2014-10-30T00:00:00\", \"size\": 35}}, {\"pk\": 2799, \"model\": \"xx\", \"fields\": { \"price\": \"6250\", \"publishdate\": \"2014-12-08T00:00:00\",\"size\": 0}}]";
total = (
381
);
}
)
在控制台中po responseObject[0][@"data"][0]
打印数据数组并按p responseObject[0][@"total"][0]
预期打印 381
问题:
- 在试图转换
responseObject[0][@"total"][0]
为整数的代码中返回一个垃圾号 - 强制
responseObject[0][@"data"][0]
转换NSArray*
然后尝试执行计数或任何其他操作会导致异常:'NSInvalidArgumentException', reason: '-[__NSCFString count]: unrecognized selector sent to instance