我想知道在运行时是否可以动态地向Objective-C对象实例添加新属性?
我最初的想法只是将getValueForKey重写为“伪造”一个属性,但似乎这对CoreAnimation不起作用。我想要实现的是能够为自定义属性设置动画。如果我创建CALayer的子类并将声明的属性添加到我的子类,我已经能够实现这一点。如果我尝试使用getValueForKey / setValueForKey策略,似乎CoreAnimation不关心它,它显式地寻找声明的属性。
我希望能够动态添加属性,因为我可能不知道在运行时我想要动画的属性。我当然可以创建一个CALayer子类,它具有我想要动画的所有属性......但只是想知道是否有更好的方法来做到这一点......
谢谢,
彼得
答案 0 :(得分:3)
您是否尝试过覆盖valueForUndefinedKey:相反? (我在一个自定义的NSObject子类上执行此操作,该子类可以具有从数据库中提取名称的各种属性。)
答案 1 :(得分:1)
如果需要,您可以覆盖-respondsToSelector:
和-doesNotUnderstand:
以动态处理传入的消息。