Динамическое вызов метода с параметрами

Я знаю, что можно вызвать метод по его имени следующим образом:

NSString *string =@"methodName"; [self performSelector:NSSelectorFromString(string)]; 

И что он выполнит следующий метод:

 -(void)methodName { // todo:..... } 

Мне интересно, как вызвать метод, который имеет такие параметры:

 -(void)methodName:(NSString *)_name :withValue (NSString *) value { // todo:..... } 

Вы можете использовать -performSelector: withObject:

 NSDictionary *dic = @{@"name":@"stringName",@"value":@"12"}; NSString *string =@"methodName:"; [self performSelector:NSSelectorFromString(string) withObject:dic]; 

И в -mododName:

 -(void) methodName:(id)obj { NSDictionary *dic = (NSDictionary *)obj; [self methodName:dic[@"name"] withValue:dic[@"value"]]; } 

Я не знаю точного синтаксиса с головы, но вы можете сделать это с помощью NSInvocation .

Ну, я не знаю, что именно нужно, но из моего понимания, это что-то вроде:

 NSArray *fruits = [NSArray arrayWithObjects:@"Apple", @"Mango", nil]; NSArray *drinks = [NSArray arrayWithObjects:@"Drink1", @"Drink2",nil]; [self serveOrdersWith:fruits andDrinks:drinks]; 

Где-то в классе метод будет вызываться с помощью массива аргументов array ie

 -(NSArray*)serveOrdersWith :(NSArray*)array1 andDrinks:(NSArray*)array2{ //Your code here but I will finish with this only NSArray *orderArray; [orderArray addObject:array1]; [orderArray addObject:array2]; return orderArray; }