4

我想知道是否可以在运行时动态地将新属性添加到 Objective-C 对象实例?

我最初的想法只是覆盖 getValueForKey 以“伪造”属性,但似乎这不适用于 CoreAnimation。我想要实现的是能够为自定义属性设置动画。如果我创建一个 CALayer 的子类并将声明的属性添加到我的子类中,我就能够让它工作。如果我尝试使用 getValueForKey/setValueForKey 策略,CoreAnimation 似乎并不关心它,它正在明确寻找声明的属性。

我希望能够动态添加属性,因为在运行之前我可能不知道要为哪个属性设置动画。我当然可以创建一个 CALayer 子类,它具有我想要动画的所有属性......但只是想知道是否有更好的方法来做到这一点......

谢谢,

彼得

4

2 回答 2

3

您是否尝试过覆盖 valueForUndefinedKey: ?(我在自定义 NSObject 子类上执行此操作,该子类可以具有从数据库中提取名称的各种属性。)

于 2009-04-28T21:15:25.860 回答
1

如果需要,您可以覆盖-respondsToSelector:-doesNotUnderstand:动态处理传入的消息。

于 2009-04-28T21:36:39.147 回答