2010-07-02 2 views
0

Насколько отличается поведение значения ValueKKey от CALayer любого другого обычного NSObject?
У меня есть пользовательский слой, который наследуется от CALayer и имеет свойство с именем «angle», , но [myLayer valueForKey: @ «angle»] всегда возвращает ноль, в то время как [myLayer angle] возвращает правильное значение.

ValueForKey: работает как задумано с классом, унаследованным от NSObject, но не один из CALayer, так что я предполагаю, что это [CALayer valueForKey:], что делает какие-то странные фокусы ..

Спасибо!CALayer valueForKey:

ответ

2

Вся основная анимация на самом деле поддерживается кодом C++, интерфейс - это просто оболочка Objective-C. Поэтому функции, такие как -valueForKey:, были переопределены для первого ядра C++. В этом отличие от NSObject.

Если ваш -angle - это всего лишь метод, а не заявленное свойство, пользовательский -valueForKey: не найдет его. Вероятно, это ошибка. Попытайтесь убедиться, что вы объявите объект .angle.

@property(assign) float angle; 
+0

Отлично! Спасибо за быстрый и проницательный ответ! Просто из любопытства, где вы получаете такую ​​информацию? Потому что я часто нахожу, что документов Какао недостаточно. Вы работаете в Apple? ;) – Kay

+0

Я хотел проголосовать за это, но у меня недостаточно репутации. – Kay

+0

Я разместил еще один вопрос относительно этого. Можете ли вы взглянуть, если у вас есть время? Спасибо! http://stackoverflow.com/questions/3170723/animation-a-custom-calayer-property – Kay

Смежные вопросы