【发布时间】:2011-07-17 00:30:24
【问题描述】:
我的情况是,我想在运行时为类动态生成 getter 和 setter(与 NSManagedObject 在幕后所做的类似)。据我了解,这可以在特定类上使用 resolveInstanceMethod: 。此时,您将不得不使用 class_addMethod 根据选择器动态添加方法。我在理论上理解这一点,但我没有深入研究 obj-c 运行时,所以我很好奇是否有任何很好的例子来说明如何做到这一点。我的大部分知识来自这篇文章:
有什么想法/例子吗?
【问题讨论】:
-
从表面上看,这听起来很糟糕。你为什么要这样做?你遇到了什么问题?
-
这实际上不是一个糟糕的主意:)。正如我所提到的,这里的目的是以类似于 NSManagedObject 的方式运行,其中子类对象可以按照其超类确定的方式对其属性进行操作。例如,对于 Core Data,超类定义了核心登录(包括动态 getter 和 setter)以确保数据存储在持久存储中。我的方法是完成类似的事情,但目的与 Core Data 完全不同(我无法在此处详细介绍,因为它与当前处于 NDA 下的功能相关联)。
-
@jtbandes 对 Apple 这么说 :)
标签: objective-c ios cocoa