我正在从服务器加载JSON,发现非常奇怪的类型名称,并且不知道如何处理它
什么struct _lldb_autogen_pair
意思,为什么它在那里,当JSON是:
原版的:
{ "2011.10.06": [ { "place":"home", "role":0, "title":"abc" } ], }
更新 我有AFHTTPRequestOperationManager的单例子类,所以我做
client = [[VZWebClient alloc] initWithBaseURL:[NSURL URLWithString:kVZWebClientHostName]]; client.responseSerializer = [AFJSONResponseSerializer serializer];
在NSLOG,没有任何惊喜,一切都好
您正在查看NSDictionary的内容.容器在逻辑上由键==>值对组成.
但是,如果你去查看字典的内存中表示,它只是存储一系列对象指针,例如像
0x123 (key) 0x456 (value) 0x356 (key) 0x577 (value) ...
如果您是LLDB,则需要找到一种方法,将每个密钥与其值组合在一起.在C++中,这是一个简单的问题,因为你可以使用std :: pair <>(并且C++ std :: map <>倾向于在内部使用该类型来存储条目,因此你可以免费获得分组).在ObjC中,您需要一些可以让您进行分组的东西.
所以我们所做的就是生成一个假的__lldb_autogen_nspair,它基本上归结为
struct __lldb_autogen_nspair { id key; id value; };
我们将NSDictionary作为这些结构的容器呈现.
这个名字几乎就是说"嘿这是一个LLDB实现细节,不要担心它".