Я создаю универсальный пользовательский интерфейс, который может подключаться к ряду базовых свойств объекта, поэтому я бы хотел вызывать метод получения и установки по имени.Я играл с использованием NSInvocation, а также видел, как другие используют setValue:forKey
.Но я бы хотел использовать самый быстрый метод.
Если я держу ссылку на экземпляр NSInvocation, я могу довольно быстро вызвать invoke, но у меня возникает проблема - как я могу вызвать установщик свойств, используя его?Он отлично работает на геттере так:
SEL propSelector = NSSelectorFromString(propertyName);
NSInvocation *inv = [NSInvocation invocationWithMethodSignature:[[target class]instanceMethodSignatureForSelector:propSelector]];
[inv setSelector:propSelector];
[inv setTarget:target];
[inv invoke];
float value;
[inv getReturnValue:&value];
Но я не смог найти способ присвоить значение селектору.Использование setArgument:atIndex:
, похоже, не работает.
Итак, я прибегаю к методу setValue:forKey:
, но я обеспокоен тем, что производительность со временем резко возрастет.
Есть идеи?