调试器输出中的未知__lldb_autogen_pair类型

 唲戲2502873263 发布于 2022-12-18 10:36

我正在从服务器加载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,没有任何惊喜,一切都好

1 个回答
  • 您正在查看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实现细节,不要担心它".

    2022-12-18 10:38 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有