参数传递给选择
问题描述:
我一直在一个小的演示,我写了接受两个字符串对象,看起来像这样参数传递给选择
-(void)adding:(NSString*)num1 :(NSString*)num2
{
num1 = first.text; //first is object of label
num2 = second.text; //second is object of label
int x= [num1 integerValue];
int y = [num2 integerValue];
int r = x+y;
NSLog(@"%d",r);
}
时遇到了一个更功能
-(void)calling
{
[self performSelector:@selector(adding:)withObject:@"num1" withObject:@"num2"];
}
,并是一个函数调用名为调用按钮的方法触摸内部事件
[btn addTarget:self action:@selector(calling) forControlEvents:UIControlEventTouchUpInside];
但我得到一个错误调用ed无法识别的选择器发送到实例
你能告诉我我错在哪里以及如何将参数传递给选择器。 谢谢
答
你错过了一个冒号。试试这个:
[self performSelector:@selector(adding::)withObject:@"num1" withObject:@"num2"];
然而,这是不好的形式来对你的方法名,因为这样的错误发生的未命名参数)
我会重新命名你的方法是
-(void)adding:(NSString*)num1 to:(NSString*)num
和有这条线:
[self performSelector:@selector(adding:to:)withObject:@"num1" withObject:@"num2"];
答
你让你的选择错了,应该是@selector(adding::)
同样在这种情况下,您不需要使用performSelector:...
,您可以直接发送消息:[self adding: @"num1" : @"num2"]
。