CALayer的valueForKey与任何其他普通NSObject的行为有何不同?
我有一个继承自CALayer的自定义图层,它有一个名为'angle'的属性,
但是[myLayer valueForKey:@“angle”]总是返回nil而[myLayer angle]返回正确的值。
ValueForKey:从NSObject继承的类中使用,但不是来自CALayer的类,所以我猜它是[CALayer valueForKey:],它正在做一些奇怪的技巧。
谢谢!
答案 0 :(得分:2)
整个Core Animation实际上是由C ++代码支持的,该接口只是一个Objective-C包装器。因此,-valueForKey:
之类的函数已经重新实现,首先要通过C ++核心。这与NSObject不同。
如果您的-angle
只是一种方法,而不是声明的属性,则自定义-valueForKey:
将无法找到它。这可能是一个错误。尽量确保声明属性.angle
。
@property(assign) float angle;