【问题标题】:CALayer valueForKey:CALayer valueForKey:
【发布时间】:2010-07-02 19:12:06
【问题描述】:

CALayer 的 valueForKey 的行为与任何其他普通 NSObject 的行为有何不同?
我有一个继承自 CALayer 的自定义层,它有一个名为“角度”的属性, 但是 [myLayer valueForKey: @"angle"] 总是返回 nil 而 [myLayer angle] 返回正确的值。

ValueForKey: 与从 NSObject 继承的类一起工作,但不是从 CALayer 继承的类,所以我猜是 [CALayer valueForKey:] 在做一些奇怪的技巧..

谢谢!

【问题讨论】:

    标签: iphone core-animation calayer


    【解决方案1】:

    整个核心动画实际上是由 C++ 代码支持的,接口只是一个 Objective-C 包装器。因此,像-valueForKey: 这样的函数已被重新实现,以首先通过 C++ 内核。这就是与 NSObject 的区别。

    如果您的 -angle 只是一个方法,而不是声明的属性,则自定义 -valueForKey: 将找不到它。这很可能是一个错误。尽量确保你声明了一个属性.angle

    @property(assign) float angle;
    

    【讨论】:

    • 太棒了!感谢您的及时和有见地的回答!只是出于好奇,你从哪里得到这样的信息?因为我经常发现 Cocoa 文档是不够的。你为苹果工作吗? ;)
    • 我已经发布了与此相关的另一个问题。有时间可以看看吗?谢谢! stackoverflow.com/questions/3170723/…
    猜你喜欢
    • 1970-01-01
    • 2014-06-28
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    相关资源
    最近更新 更多