【问题标题】:Can you add a property at run-time when coding with Objective-C使用 Objective-C 编码时,您可以在运行时添加属性吗
【发布时间】:2009-04-28 16:12:19
【问题描述】:

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

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

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

谢谢,

彼得

【问题讨论】:

    标签: objective-c core-animation


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-27
        相关资源
        最近更新 更多