Для целей отладки мне нужно вызвать метод доступа CGFloat из фрагмента кода, который генерирует селектор из имени iVar согласно;
- (CGFloat) myIVar {
return myIVar;
}
Сеттер имеет вид;
- (void) setMyIVar: (CGFloat) p_myIVar {
[self willChangeValueForKey: @"myIVar"];
myIVar = p_myIVar;
[self didChangeValueForKey: @"myIVar"];
}
Чтобы я мог проследить за обратными вызовами, я поместил раздел отладки в часть didChange кода НаблюденияValueForKeyPath ... и хочу вызвать метод доступа геттера для распечатки результата;
SEL genericGetter = NSSelectorFromString (p_keyPath); // i.e. '[self myIVar]'
NSLog (@"Key: %@ changed to %3.6f", p_keyPath, [self performSelector: genericGetter]);
Проблема в том, что perormSelector возвращает идентификатор, который не может быть приведен к CGFloat. Кроме того, в документации Apple приводятся 3 примера на executeSelector, каждый из которых возвращает идентификаторы, но не говорит вам, что делать для результатов без идентификатора.
Может кто-нибудь сказать мне, как реализовать логику, которую я пытаюсь использовать, пожалуйста?
Заранее большое спасибо, ВВ.