iPhone OS:从匿名对象获取方法和变量列表

2024-06-19

我正在构建我的第一个 iPhone/Obj-c 应用程序,并且我有大量的数据保存子类,我将它们传递给引用函数。对于 cite 函数,这些对象是匿名的,我需要找到一种方法来访问每个传递对象的所有变量。 我一直在使用预构建的 NSArray 和选择器来执行此操作,但有超过 30 个条目(并且还在不断增长),手动执行此操作有点愚蠢。必须有一种方法来动态查找匿名对象的所有变量。

The obj-c 运行时 http://developer.apple.com/iphone/library/documentation/Cocoa/Reference/ObjCRuntimeRef/Reference/reference.html运行时文档提到了这个问题,但据我所知,这在 iPhone 操作系统中不可用。如果是这样,那么我不了解实施情况,需要一些指导。类似的问题 https://stackoverflow.com/questions/754824/get-an-object-attributes-list-in-objective-c之前有人问过,但我再次认为他们谈论的是 OSX 而不是 iPhone。

有什么想法吗?

-(NSString*)cite:(id)source {
 NSString *sourceClass = NSStringFromClass([source class]);

 // Runs through all the variables in the manually built methodList
 for(id method in methodList) {
  SEL x = NSSelectorFromString(method);
  // further implementation

 // Should be something like
 NSArray *methodList = [[NSArray alloc] initWithObjects:[source getVariableList]]
 for(id method in methodList) {
  SEL x = NSSelectorFromString(method);
  // Further implementation
 }

Mac 上的运行时间与 iPhone 上的运行时间相同。如果另一个问题符合您的要求,那么它应该有效。如果没有,请提交错误。

与此同时,给定一个Class,您可以使用以下命令检索其所有选择器的列表class_copyMethodList() http://developer.apple.com/mac/library/documentation/Cocoa/Reference/ObjCRuntimeRef/Reference/reference.html#//apple_ref/doc/uid/TP40001418-CH1g-SW4功能:

unsigned int numMethods = 0;
Method * methods = class_copyMethodList(sourceClass, &numMethods);
NSMutableArray * selectors = [NSMutableArray array];
for (int i = 0; i < numMethods; ++i) {
  SEL selector = method_getName(methods[i]);
  [selectors addObject:NSStringFromSelector(selector)];
}
free(methods);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iPhone OS:从匿名对象获取方法和变量列表 的相关文章

  • 如果您的应用程序使用的 API 在您的应用程序发布后被弃用,会发生什么情况?

    如果您发布的应用程序使用的 api 稍后被弃用 在您的应用程序发布之后 那么会发生什么 如果您的应用程序在商店发布后从未更新怎么办 它适用于所有未来版本的 iOS 吗 当 API 在更高版本的操作系统中消失后 应用程序还能运行吗 或者 Ap
  • iPhone 版 Twitter 书签如何工作?

    Twitter 客户端 以前称为 Tweetie 允许您在 Safari 中定义启动应用程序的书签 我想知道哪个 iPhone API 允许您注册协议说明符 或任何名称 在本例中为 tweetie 以便此小书签正常工作 可以找到说明here
  • 单击 UITabBarController 时的自定义操作

    我有一个选项卡栏控制器 其中添加了四个导航控制器 导航控制器在选项卡栏控制器中显示为选项卡栏项目 现在我想向选项卡栏添加第五个按钮 该按钮不会打开另一个视图 但会触发一些自定义代码 我想在单击该选项卡栏项目时显示覆盖的 共享菜单 无论用户位
  • 如何更改表格单元格的详细信息披露按钮的颜色

    我想更改表格单元格的详细信息披露按钮的颜色 提前致谢 你必须创建一个自定义的UIButton并将其设置为单元格的附件视图 Your cellForRowAtIndexPath 看起来像下面这样 UITableViewCell tableVi
  • iPhone - 来自本地文件 URL 的 NSData

    我有一个NSURL对象 它为我提供本地文件的路径 在文档文件夹中 我想填充一个NSData包含此文件内容的对象 尝试使用dataWithContentsOfURL 但这失败了 我知道该文件存在 因为 iPhoneSDK返回路径 有人可以告诉
  • zlib 直接用于解压 iPhone 的 zip 文件夹

    是否可以使用 iPhone 上可用的最低 zlib 来解压缩文件夹的 zip 我不想使用开源库 请告诉我实现一段可以解压缩 zip 文件的代码的难度或可能性 正如 JosephH 所说 您不能使用 ZLib 来处理 zip 文件 但您可以使
  • iPhone开发中如何制作画线动画?

    我一直在四处寻找 但对于这个简单的问题似乎没有好的答案 所以我再次问 如何在 iphone dev 中制作线条画动画 基本上我想要的是这样的 implementation MyUIView void triggerLineDrawing C
  • 当我使用 ASIHTTPRequest 和 SBJSON 时,iOS 5.1 出现错误

    我收到此错误 Undefined symbols for architecture i386 OBJC CLASS ASIHTTPRequest referenced from objc class ref in FirstViewCont
  • 来自 NSString 的 iOS SecKeyRef

    我需要使用公钥将用户密码加密为 Base64 字符串 公钥是一个 NSString 像这样的东西 MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCgWO7p1AvCaHUeaM6rSczBBAqt mKObHx
  • UIView.frame 的核心动画

    我正在尝试制作一个移动两个视图的框架的简单动画 基本上隐藏广告直到加载 然后将框架从底部向上移动 以及从底部开始的视图 然后当广告将其向上推时也会向上移动 开始和结束位置是正确的 但我没有看到它是动画的 它是否正确 谢谢 CAKeyfram
  • StrictMode.ThreadPolicy 策略 = new StrictMode.ThreadPolicy.Builder().permitAll().build(); [复制]

    这个问题在这里已经有答案了 StrictMode ThreadPolicy policy new StrictMode ThreadPolicy Builder permitAll build 我想了解一下 它如何运作 StrictMode
  • iphone / css - 单击时如何防止项目上出现黑色半透明覆盖

    我正在编写一个移动网站 在 iPhone 中 当您触摸 按住可点击项目时 图像顶部会出现明显的半透明黑色覆盖层 有人经历过这个吗 我该如何摆脱它 有没有办法用css 这是我的代码 childLink div class option div
  • Objective C:在 gdb 中哪里可以找到

    我正在尝试使用 NSZombie 调试我的程序 调试器确实返回了存在问题的实例的地址 但是我不确定在哪里获取运行命令 shell malloc history 所需的 pid 谁能告诉我在这种情况下使用的正确 pid 是什么 我尝试了 32
  • 在不使用PrepareForSegue的情况下在segue之间传递数据

    我正在使用情节提要创建一个用户设置帐户 分 5 个步骤 每个步骤都有一个 ViewController 1 输入姓名 联系人等 2 导入照片 3 输入等 4 更多输入 5 确认页面 如果用户单击 确认 gt 获取所有输入并上传到解析 当我在
  • 在 ARC 中异步生成 CGImagesForTimes

    如果我在启用了 ARC 的项目中运行以下命令 则完成处理程序永远不会触发 但如果没有 ARC 它会按预期工作 我在这里缺少什么 NSURL url NSURL URLWithString http media w3 org 2010 05
  • 多对多关系中的 KVO 对象属性

    我有一个核心数据对多关系 由父 gt 子组成 我想设置一个键值观察机制 以便当任何子对象上的属性 例如 firstName lastName 发生更改时 它会触发通知 使用标准 KVO 语法时 self parentObject addOb
  • 具有硬件集成的 iOS 应用程序

    我想开发一个使用外部硬件插件的 iOS 应用程序 有点像 Squarehttps squareup com https squareup com 但是我在苹果的文档中找不到任何参考资料 有人能指出我正确的方向吗 如果您想使用 iPod 连接
  • GKLocalPlayer 身份验证不起作用,但 isAuthenticated 返回 YES(游戏中心沙盒)

    我正在努力将回合制比赛集成到我的游戏中 几天前 我开始从 GameKit API 收到奇怪的错误 指出本地玩家未经过身份验证 尽管他已通过身份验证 当我启动应用程序时 authenticateHandler被调用 显示视图控制器 输入密码后
  • 函数“FBSDK_NOT_DESIGNATED_INITIALIZER”的隐式声明在 C99 中无效预期“)”

    我正在使用适用于 iOS 4 6 0 的 Facebook SDK 今天将 cocoapods 更新到 0 38 2 后遇到了上述错误 我不确定这个错误与 cocoapods 有什么关系 Error screenshot 我遇到过同样的问题
  • 记录使用 OpenAL 播放的样本

    我在 iOS 上使用 OpenAL 同时播放 9 个循环 为了使循环 100 同步 它们开始在不同的线程上运行 有关使用 OpenAL 记录正在播放的内容的任何指示 教程 如果我使用不同的线程 我会遇到录制问题吗 iOS 上的 OpenAL

随机推荐

  • ModelAndView 和 ModelMap 有什么区别? [复制]

    这个问题在这里已经有答案了 Is ModelMap只是 Spring 3 中的新名称ModelAndView Spring 3 中的功能有变化吗 在 Spring 3 应用程序中考虑使用以下代码ModelMap RequestMapping
  • 如何确定 fork-join 任务的适当分工阈值

    看完之后分叉 连接教程 http docs oracle com javase tutorial essential concurrency forkjoin html 我创建了一个用于计算大阶乘的类 public class ForkFa
  • 页面加载后 5 秒后加载 JavaScript?

    我已经尝试过以下方法 gt 这是正确的方法吗 我想这样做的原因是因为我的整个网站在页面加载时都处于动画状态 例如淡入淡出 我的 JavaScript 只会让动画变得不流畅 任何反馈表示赞赏 这段代码会起作用 只需以毫秒为单位设置时间并在 l
  • Facebook Open Graph 图像的最小宽度和高度是多少?

    我读到 Facebook 开放图中与给定 URL 关联的图像必须大于 50 x 50 然而 当我们运行 Facebook 对象调试器时 我们收到以下警告 微小的 og image og image 引用的所有图像在两个维度上都必须至少为 2
  • 到子级的角度路由 - 来自不同父级的子级

    我正在使用打字稿进行角度路由 但面临一些路由问题 流程似乎是 我真正想做的是通过Child Child2的一部分 其ID为Child1的Child 路由 但它不显示页面 Child1 用于插入 更新的所有路由都驻留在 Child1 中 而
  • SQL:如何在按部分分组的查询中使用子查询?

    如何在按部分分组的查询中使用子查询 我使用 SQL Server 2008 R2 和 Delphi 2010 我收到此错误 Cannot perform an aggregate function on an expression cont
  • Spinner onItemSelected 被错误调用(无需用户操作)

    我有一个在对话框视图中显示的微调器 对话框开始时onItemSelected叫做 我真的不想处理这个 但只有当用户做出选择时 所以我要么需要阻止这种情况 也许是因为没有设置默认值 要么我需要知道不是用户在做出此选择 本着比尔 莫特解决方案的
  • Android:如何在 Android 中访问电子邮件地址

    我有以下代码 通过它我可以检索电话号码 不知何故 我无法使用 android provider Contacts People API 检索电子邮件地址 有任何想法吗 import android app AlertDialog impor
  • 带填充的 Tailwind CSS 导航悬停下拉菜单

    我正在尝试展示子 ul 当项目悬停时 在第一个导航项目上列出 一切正常 除了有时 时好时坏 当您位于第一行的填充之间时 ul 项目和子项目 ul 项目 次要项目 ul 会消失 当我从下拉菜单导航到项目列表时 如何保持辅助导航列表打开 JSF
  • 如何安装 grunt-cli 而不出现错误?

    灵感来自 Chris Coyierpost http 24ways org 2013 grunt is not weird and hard 我决定尝试一下 grunt 但我在设置时遇到了很大的问题 首先 我安装了 Node js 然后我将
  • 使用 BinaryWriter 将一位写入二进制文件

    我想将一位写入二进制文件 using FileStream fileStream new FileStream myfile bin FileMode Create using BinaryWriter binaryWriter new B
  • 无法在 IBM Mobilefirst Platform Test Workbench 8.7(免费版本)中引用数据池测试

    使用的工具 IBM Mobilefirst Platform Test Workbench 8 7 免费版 OS Windows 7的 问题描述 1 在测试工作台中以记录模式创建测试用例 针对登录场景 2 插入一个新的数据池 并向数据池中的
  • 模拟比存根更好吗?

    不久前我读到了模拟不是存根 http www martinfowler com articles mocksArentStubs htmlMartin Fowler 的文章 我必须承认我有点害怕外部依赖性增加的复杂性 所以我想问 单元测试时
  • 如何解决下载时“失败 - 无文件”的问题?

    我正在尝试设置适用于 Chrome 和 IE 10 11 的下载文件 它在大多数情况下适用于普通文件类型 EXE PNG TXT 等 但当尝试下载没有文件类型的文本文件或 000 等随机类型时 它将失败 显示 失败 否 文件 有谁知道可能导
  • 扩展 Protobuf 消息

    我有许多不同的模式 但是每个模式都包含一组字段 我想知道是否有一种方法可以让不同的模式扩展父模式并继承其字段 例如 这就是我想要的 message Parent required string common1 0 optional stri
  • 多个 MapFragment 的性能(Android Map API v2)

    我搜索了新的文档谷歌 Android 地图 API v2 https developers google com maps documentation android 但没有找到任何相关信息 在 v2 之前 我们 官方 无法正确显示每个应用
  • Ubuntu 中的颜色选择器实用程序(颜色移液器)[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用脚本从网站中提取电子邮件地址

    给定一个网站 我想知道以编程方式和 或使用脚本的最佳程序是什么 以纯文本形式提取每个页面上存在的所有电子邮件地址 电子邮件受保护 cdn cgi l email protection从该链接和下面的所有站点 递归或直到某个固定深度 使用 s
  • 在网站上不间断地播放 mp3?

    客户请求在整个网站上播放单个曲目 一般来说 我建议不要这样做 但他们坚持这样做 那么 将 Flash 播放器嵌入到网站中并且当用户转到另一个页面时不会出现间隙 中断的最直接方法是什么 我认为需要一个 iframe 我正在使用具有自动恢复功能
  • iPhone OS:从匿名对象获取方法和变量列表

    我正在构建我的第一个 iPhone Obj c 应用程序 并且我有大量的数据保存子类 我将它们传递给引用函数 对于 cite 函数 这些对象是匿名的 我需要找到一种方法来访问每个传递对象的所有变量 我一直在使用预构建的 NSArray 和选