0

我想在运行时将 ivar 添加到现有的 Objective-c 类,但文档指出 ivar 不能是现有类,所以我认为属性仍然可以解决我的问题。

如此处所述 class_addProperty(...) 返回 true,但是当我尝试通过它的名称(或属性名称)访问 ivar 时,它总是返回 nil。导致这种情况发生的问题可能是什么?

4

2 回答 2

1

您将无法在运行时向类添加ivar 。您可以将类及其 ivars 视为类似于 C 结构的东西。它的布局是在编译时定义的。

您可以在运行时添加属性(因为这些只是方法),并且您可以实现它们的 getter 和 setter,但您需要想出一种不同的方式来存储它们所代表的任何数据。

于 2013-07-26T19:08:39.477 回答
0

您是否正在寻找与其他编程语言类似的东西?

它看起来像在 AS3 中添加属性,但 objc 认为最好的方法是通过键存储 NSDictionary 对象。

于 2013-07-26T19:14:45.190 回答