如果我从文档中了解到这一点:
objc_property_t theProperty = class_getProperty([self class], [name UTF8String]);
我得到了该物业的参考。我不明白如何将该结构“投射”到UIImageView * imageView_1,以便能够将图像设置为此imageVIew_1。
最佳答案
objc_property_t
是不透明的类型。它基本上是在类级别上描述属性的C结构。
它与特定实例的值无关。
因此,换句话说,您不能使用class_getProperty
获得属性值。
还要记住,属性暗示着一种吸气方法。因此,如果要访问属性,则可以调用getter方法。
请注意,您可以使用object_getInstanceVariable
函数获取实例变量的值。
Ivar object_getInstanceVariable(id obj, const char *name, void **outValue)
顺便说一句,为什么要使用运行时访问属性?
也许您正在做一些非常复杂的反射操作,但是否则,我建议您避免运行时。
有什么问题:
object.propName
要么
[ object propName ];
?