2010-10-04 102 views
1

我一直在一个小的演示,我写了接受两个字符串对象,看起来像这样参数传递给选择

-(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无法识别的选择器发送到实例

你能告诉我我错在哪里以及如何将参数传递给选择器。 谢谢

回答

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

你让你的选择错了,应该是@selector(adding::)

同样在这种情况下,您不需要使用performSelector:...,您可以直接发送消息:[self adding: @"num1" : @"num2"]