我一直在做一个小型演示,我写了一个接受两个字符串对象的函数,看起来像这样
-(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"];
}
我正在调用名为call on on on touch in up in inside
的方法[btn addTarget:self action:@selector(calling) forControlEvents:UIControlEventTouchUpInside];
但是我收到了一个名为unrecognized selector的错误,发送到实例
你能告诉我我错在哪里以及如何将带有参数的方法传递给选择器。 谢谢
答案 0 :(得分:4)
你错过了冒号。试试这个:
[self performSelector:@selector(adding::)withObject:@"num1" withObject:@"num2"];
但是,在方法名称上包含未命名的参数是不好的形式,因为这样的错误会发生;)
我将您的方法重命名为
-(void)adding:(NSString*)num1 to:(NSString*)num
并且有这一行:
[self performSelector:@selector(adding:to:)withObject:@"num1" withObject:@"num2"];
答案 1 :(得分:1)
你的选择器错了,它应该是@selector(adding::)
同样在这种情况下,您无需使用performSelector:...
,您可以直接发送消息:[self adding: @"num1" : @"num2"]
。