Использовать NSInvocation; он может инкапсулировать почти произвольный набор аргументов, селектор и цель, которые затем могут быть вызваны простым способом.
Или используйте блоки. Вы можете инкапсулировать вызов внутри блока, записывая любое нужное вам состояние, передавая остальное в качестве аргументов.
То, что вы пытаетесь сделать, - это, как правило, указание на проблемы дизайна / архитектуры. Вам не нужно этого делать.
Однако, безусловно, бывают случаи, когда это требуется по ряду причин (часто по контракту - был там, сделал это, точно знал, как контракт может диктовать необходимость ужасной практики кодирования).
<Ч />
но может ли он также получить доступ к аргументам текущего метода?
"Вроде".
Не ясно, о чем вы спрашиваете. Если «текущий метод» не тот, который вы внедрили, то вы можете сделать очень мало (если не считать стремительных или других игр во время выполнения, которые действительно никогда не следует использовать).
Если это тот, который вы реализовали, просто используйте аргументы. Вы можете кодировать их в NSInvocation, если хотите отложить выполнение (или блок).
NSInvocation используется для захвата аргументов в конкретном случае; при реализации метода переадресации, в частности. Но это, похоже, не связано с тем, что вы пытаетесь сделать.