如何列出 Objective-C 中对象的所有字段?

2023-12-29

如果我有一个类,如何列出它的所有实例变量名称?

eg:

@interface MyClass : NSObject {
    int myInt;
    NSString* myString;
    NSMutableArray* myArray;
}

我想获取“myInt”、“myString”和“myArray”。有什么方法可以获取我可以迭代的名称数组吗?

我尝试搜索 Objective-C 文档,但找不到任何内容(而且我也不确定这叫什么)。


如前所述,您可以使用 Objective-C 运行时 API 来检索实例变量名称:

unsigned int varCount;

Ivar *vars = class_copyIvarList([MyClass class], &varCount);

for (int i = 0; i < varCount; i++) {
    Ivar var = vars[i];

    const char* name = ivar_getName(var);
    const char* typeEncoding = ivar_getTypeEncoding(var);

    // do what you wish with the name and type here
}

free(vars);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何列出 Objective-C 中对象的所有字段? 的相关文章

随机推荐

  • Assimp模型加载库安装/链接问题

    我正在尝试安装 Assimp 以在我的项目中使用 但遇到了一些麻烦 我目前使用的是 win 10 pro 和 Visual Studio 15 2017 我已经下载了Assimp 4 0 1 zip 将其解压到一个目录中 加载cmakeGu
  • jQuery 1.4.4:如何根据数据属性值查找元素?

    我想这应该是一个非常简单的任务 但使用 Firefox for Mac 3 6 12 以下内容不起作用 assign data attributes gallery li each function i this data slide i
  • 将 django-storages 后端从 s3 更改为 cloudfiles 并处理旧文件

    我有一个 django 应用程序 我正在将其转移到机架空间 我有一个使用 FileFields 的模型 并且正在使用 django storages 库 s3 boto 后端 我想使用 cloudfiles 进行存储 并且我需要能够提供旧的
  • 浮动后背景颜色不起作用

    我对CSS真的很陌生 所以我决定尝试重新创建this http www w3schools com css default asp我自己的页面 但我遇到了以下问题 HTML
  • 如何使用 boto3 在 EC2 中进行 SSH 和运行命令?

    我希望能够 ssh 进入 EC2 实例 并在其中运行一些 shell 命令 例如this https stackoverflow com a 15503965 4993513 我该如何在 boto3 中做到这一点 这个线程有点旧 但由于我花
  • 在 HashMap 中设置默认值[重复]

    这个问题在这里已经有答案了 我正在尝试找到一种方法使 HashMap 返回默认值 例如 如果您查看以下内容 将打印出 测试 空 如果我想请求一个默认值 那么每当我尝试获取未在 hashMap 中设置的内容时 我都会得到该值 该怎么办 Map
  • 使用 PHP 和 Jquery 将表单输入字段添加到电子邮件

    我用过This https spruce it noise simple ajax contact form 在我的网站上创建联系表单的教程 不幸的是 字段的数量对我来说不够 所以我在表单中添加了公司和主题字段 但是 我无法让邮件输出与其他
  • Unity C# 如何正确加载托管DLL?

    基于这里的另一个问题在 C 项目中使用 OpenH264 DLL https stackoverflow com questions 56230212 using openh264 dll in c sharp project我基本上是想使
  • 为什么 groovy 不能在 Jenkins 管道中运行?

    我目前正在尝试从我的管道运行一个 groovy 脚本作为我的节点之一 但我遇到了这个错误 CompanyName Running shell script ideainspect groovy env groovy No such file
  • GitLab HTTP 远程上的 git 命令失败并显示 403

    我安装了 GitLab 5 0 突然无缘无故地开始失败gitHTTP URL 上的命令 任何命令 例如git clone pull push失败并出现以下错误 fatal unable to access http host user pr
  • 带联合查询的下拉菜单

    我正在开发一个预订系统 在我的预订表单中 我有一个下拉元素 它返回预订系统 仍然 可用的开始时间段 通过创建新的预订 我创建的查询工作正常 并且所有可用的开始时间段都正确返回 QUERY WHERE thistable id IN SELE
  • npm 安装错误 EPERM 不允许操作

    So when trying to run the angular4 project today my first error was npm install eperm operation not permitted so I thoug
  • 点击事件上的 JQuery .done

    我不是一名 javascript 开发人员 所以请耐心等待我 我需要在 jQuery 之后执行重定向click活动已完成 我有这个 但是申请不了 done to click 将整个事情包裹起来 when以太不起作用 printpng cli
  • shell脚本中${varname}和$varname有什么区别

    我有一个简单的问题 但我想知道两者之间有什么区别 varname and varname 我两者都使用 但我没有看到任何差异可以告诉我何时使用其中之一 Using 变量名称中的 有助于消除执行变量扩展时的歧义 考虑两个变量var and v
  • Java 8 中按映射列表分组

    我有一个这样的列表 List
  • Visual Studio 错误:抱歉,出了点问题 - 安装操作失败

    我试图通过添加 Python 开发和 Node js 开发来修改我的 Visual Studio 但它一直显示 抱歉 出了问题 安装操作失败 并且它不下载和安装这些功能 当我尝试卸载已安装的元素 例如 NET 桌面开发 或尝试卸载 Visu
  • 静态成员和增强序列化

    我在用着Boost 序列化 http www boost org doc libs 1 38 0 libs serialization doc index html归档课程的内容 成员变量之一是静态 std vector 归档和恢复进展顺利
  • “unistd.h”中函数“read”的读取限制是多少?

    标准unix C有这个函数 ssize t read int fd void buf size t count 但是这个 读取 函数一次可以读取的最大字节数是多少 From man read 2 http linux die net man
  • 用于 mac os x 应用程序开发的 aws sdk [已关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要为 MAC OS X 开发一个应用程序 该应用程序会将所选文件上传到亚马逊网络服务 但为此我需要适
  • 如何列出 Objective-C 中对象的所有字段?

    如果我有一个类 如何列出它的所有实例变量名称 eg interface MyClass NSObject int myInt NSString myString NSMutableArray myArray 我想获取 myInt myStr