在void函数中使用未声明的标识符'sender'

时间:2012-05-01 01:05:31

标签: ios objective-c segue

我正在Segue上进行自定义Storyboard,我有一个包含此代码的按钮:

 [self performSegueWithIdentifier:@"line3" sender:sender];

点击按钮就可以了。我遇到的问题是这个代码只能在一个不在void函数内部的按钮函数中运行。我试着点击按钮,效果很好。当我将其粘贴到void函数中时,它会给我一个抱怨发件人的错误。我尝试将其更改为无效,但没有任何反应。你能给我一些解决这个问题的见解吗?我正在检查UserDefault,它与我要查找的内容相符,然后我想执行此代码:[self performSegueWithIdentifier:@"line3" sender:sender];

-(IBAction)LoginAttemp:(id)sender{
    [self performSegueWithIdentifier:@"line3" sender:sender];
}



-(void) LoginFailed{
    [self performSegueWithIdentifier:@"line3" sender:sender];
}

我收到错误:

  

使用未声明的标识符'sender'

有什么见解?

2 个答案:

答案 0 :(得分:8)

更改

[self performSegueWithIdentifier:@"line3" sender:sender];

[self performSegueWithIdentifier:@"line3" sender:Nil];

发件人是:

  

要用于启动segue的对象。这个对象是   在实际的segue期间提供信息用途。

答案 1 :(得分:1)

void不是问题。问题是sender不是保留字。这是IBAction的参数之一:

-(IBAction)LoginAttemp:(id)sender{

请参阅?就在最后。这是Objective-C等价于IBAction LoginAttemp(id sender)

如果您没有发件人,则可以传递nilself。优先使用self

-(void) LoginFailed{

    [self performSegueWithIdentifier:@"line3" sender:self];
}