我知道可以通过这样的名称调用方法:
NSString *string =@"methodName";
[self performSelector:NSSelectorFromString(string)];
并且它将执行以下方法:
-(void)methodName
{
// todo:.....
}
我想知道如何调用具有如下参数的方法:
-(void)methodName:(NSString *)_name :withValue (NSString *) value
{
// todo:.....
}
答案 0 :(得分:2)
您可以使用-performSelector:withObject:
NSDictionary *dic = @{@"name":@"stringName",@"value":@"12"};
NSString *string =@"methodName:";
[self performSelector:NSSelectorFromString(string) withObject:dic];
and -methodName:
-(void) methodName:(id)obj
{
NSDictionary *dic = (NSDictionary *)obj;
[self methodName:dic[@"name"] withValue:dic[@"value"]];
}
答案 1 :(得分:2)
我不知道我头脑中的确切语法,但您可以使用NSInvocation执行此操作。
答案 2 :(得分:0)
嗯,我不知道究竟需要什么,但从我的理解来看,它就像是:
NSArray *fruits = [NSArray arrayWithObjects:@"Apple", @"Mango", nil];
NSArray *drinks = [NSArray arrayWithObjects:@"Drink1", @"Drink2",nil];
[self serveOrdersWith:fruits andDrinks:drinks];
在类的某个地方,将使用参数array fruits(即
)调用该方法-(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;
}