因此,我一直在尝试从其他用户那里获得帮助,但是我们永远无法取得任何进展,我的语法和代码看起来不错,但是无论如何在尝试调用按钮的方法时都无法摆脱“过分的标识符”错误。我开始认为这是全球性问题,而不是全球性问题。这是我的代码和我的错误

UIButton *add = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[add addTarget:self
        action:@selector(aMethod:)forControlEvents:UIControlEventTouchDown];
[add setTitle:@"add new" forState:UIControlStateNormal];
add.frame = CGRectMake(100, 100, 100, 100);
[self.view addSubview:add];

- (void) aMethod:(id)sender
{
    button[0].backgroundColor = [UIColor greenColor];
}


这是我ViewController.m文件中该按钮的所有代码...我有1条警告和1条错误。我的警告是


  “未找到“ aMethod”的方法定义”


这个错误被标记在我的代码顶部附近的“ @implementation ViewController”行下。
我的错误是


  使用未声明的标识符“ aMethod”


这被标记在我的“-(void)aMethod:(id)sender”下

我在ViewController.H文件中有这个

 - (void)aMethod;


之前没有尝试过。.在此之前,我一直试图获得帮助,并且不断获得与编程语法有关的提示和编辑,但是没有任何问题,我无法摆脱这些错误。还有什么可能是错误的吗?看看我的程序的其余部分会有所帮助吗?另外还有一条可能有用的信息。我的整个程序是在xcode设置了我的第一行代码之后编写的,

- (void)viewDidLoad
{
//my entire program is between these brackets.
}


当我在“ viewdidload”之前尝试此代码“-(void)aMethod:(id)sender {}”时,我没有收到错误。但是当我把它放在“-(void)aMethod:(id)sender {}”之后时,我得到了错误。当我想弄清楚哪里出了问题时,我发现了这一点。让我知道是否需要更多信息。顺便说一句,我正在尝试以编程方式完成所有操作,而无需使用情节提要...非常感谢!!

最佳答案

"method definition for 'aMethod' not found"不是指您的按钮,而是您在标头中定义了方法aMethod的事实,但尚未在实现中实现它,因为您改为使用-(void)aMethod:(id)sender;

编辑:

您的代码应如下所示:

-(void)viewDidLoad {
    [super viewDidLoad];
    UIButton *add = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [add addTarget:self action:@selector(aMethod:)forControlEvents:UIControlEventTouchDown];
    [add setTitle:@"add new" forState:UIControlStateNormal];
    add.frame = CGRectMake(100, 100, 100, 100);
    [self.view addSubview:add];
}
- (void) aMethod:(id)sender {
    button[0].backgroundColor = [UIColor greenColor];
}

关于ios - UIButton问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21975020/

10-12 14:59