Контекст:resolveInstanceMethod с неизвестным количеством аргументов
У меня есть зависимость инъекция контейнер - www.typhoonframework.org
Это позволяет использовать интерфейс для определения компонентов для их решений во время выполнения - с помощью resolveInstanceMethod и implantationWithBlock для трамплина запроса на контейнер DI.
Пользователи запрашивают некоторые параметры, которые должны быть предоставлены во время выполнения. Например:
[assembly dangerousEnemyWithWeapon:id<BigGun>]
. , где враг собирается из классов сотрудничества в контейнере DI, но пушка предоставляется во время выполнения. , ,
Вопрос:
Можно ли использовать resolveInstanceMethod определить реализацию, где число аргументов не известен фронт?
Я хотел бы упаковать эти аргументы и передать их другому ответчику.
Аргументы могут быть упакованы в порядке или добавлены в словарь с соответствующей селекторной частью в качестве ключа.
Вы посмотрели на 'forwardingTargetForSelector:'? Это медленнее, чем 'resolveInstanceMethod:', но намного быстрее, чем 'forwardInvocation:'. Возможно, это удовлетворит ваши потребности. –
Спасибо за предложение Rob. , Я хочу перевести селектор и аргументы в [container componentForKey: key withArguments: ]. , Полезно знать характеристики производительности этого метода, хотя это потенциально важно. –
Что такое 'ключ'? Вы знаете класс объекта, которому хотите отправить сообщение? –