如果我从文档中了解到这一点:

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 ];


10-08 00:28