語境:resolveInstanceMethod未知數量的參數
我有一個依賴注入容器 - www.typhoonframework.org
它允許使用接口定義組件在運行時間來解決這些問題 - 使用resolveInstanceMethod和使用Block來實現對DI容器的請求蹦牀。
用戶一直在要求在運行時提供一些參數。例如:
[assembly dangerousEnemyWithWeapon:id<BigGun>]
。 。敵人由DI容器中的協作類組裝而成,但槍在運行時提供。 。 。
問題:
是否有可能使用resolveInstanceMethod以定義參數的數目是不知道前面的實現?
我想打包這些參數,並將它們轉發給另一個響應者。
參數可以按順序打包或添加到字典中,匹配的選擇器部分作爲關鍵字。
你看過'forwardingTargetForSelector:'?它比'resolveInstanceMethod:'慢,但比'forwardInvocation:'快得多。也許它會滿足你的需求。 –
感謝您的建議Rob。 。我想將選擇器和參數翻譯爲[container componentForKey:key withArguments:]。 。很好地瞭解該方法的性能特徵 - 這可能很重要。 –
什麼是「鑰匙」?你知道你想轉發消息的對象的類嗎? –