2010-07-02 63 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