2010-07-02 66 views
0

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

ValueForKey:按预期从NSObject的继承的类,但不CALayer的一个,所以我想这是工作[CALayer的valueForKey:]这是在做一些奇怪的招数..

谢谢!CALayer valueForKey:

回答

2

整个Core Animation实际上由C++代码支持,接口只是一个Objective-C包装器。因此,像-valueForKey:这样的函数已被重新实现,首先要通过C++核心。这与NSObject不同。

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

@property(assign) float angle; 
+0

非常好!感谢您的及时和有见地的答案!出于好奇,你从哪里得到这样的信息?因为我经常发现可可文件不够。你在苹果公司工作吗? ;) – Kay 2010-07-03 03:00:38

+0

我想投这个了,但我没有足够的声誉.. – Kay 2010-07-03 03:04:42

+0

我已经发布了一个关于这个问题的进一步的问题。如果你有时间,你可以看看吗?谢谢! http://stackoverflow.com/questions/3170723/animation-a-custom-calayer-property – Kay 2010-07-03 07:49:29