我想在运行时将ivar添加到现有的object-c类中,但是文档指出ivar不能是现有的类,因此我认为property仍然可以解决我的问题。
如前所述,here class_addProperty(...)返回true,但是当我尝试通过其名称(或属性名称)访问ivar时,它始终返回nil。导致这种情况发生的原因可能是什么?
最佳答案
您将无法在运行时将ivar添加到类中。您可以将类及其ivars视为C结构。它的布局是在编译时定义的。
您可以在运行时添加属性(因为它们只是方法),并且可以实现它们的getter和setter,但是您需要提出一种不同的方法来存储它们所表示的任何数据。
关于ios - objective-c -在运行时添加属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17888877/