Если вы хотите сохранить сигнатуру метода получателя, то, я думаю, вам нужно взглянуть на использование NSInvocation
, которое позволяет указывать несколько значений аргумента.
Вы могли бы обернуть свой вызов и использовать словарь в качестве контейнера для своих аргументов, как предложено в другом ответе, но мне это кажется немного запахом кода.
Лучшим решением в этом направлении было бы создание класса, который инкапсулирует значения аргументов, то есть строго типизированный подход. Так, например, вместо передачи firstname
, surname
, вы должны передать экземпляр класса Person
. Вероятно, это лучший путь, чтобы пойти дальше, потому что методы с меньшим количеством аргументов могут привести к более чистому коду, но это совсем другая история .