0

我是为 iPhone 开发的新手。我试图制作一个基本应用程序,但出现 SIGABRT 错误。当我在模拟器中按下按钮时,游戏崩溃并出现 SIGABRT 错误。它是 NSInvalidArgumentException。这是按钮的一些代码: .h 文件:

-(IBAction)abc;


-(IBAction)abc {
    b *aaa = [[b alloc] initWithNibName:@"b" bundle:nil];
    [self presentModalViewController:aaa animated:NO];
    [aaa release];
}

非常感谢你!

4

4 回答 4

0

在您的应用程序中查找 SIGBART 的最佳方法是使用调试工具,您可以在其中找到应用程序获取此信号的确切位置。您的代码看起来不错,也许您的 b 类文件中会有一些错误

希望能帮助到你....

于 2011-08-17T04:23:07.500 回答
0

也许您指定按钮在触摸时调用的方法不存在,例如

UIButton *myButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 100, 25)];

[myButton addTarget:self action:@selector(myMethod) forControlEvents:UIControlEventTouchUpInside];

确保“myMethod”存在于您的实现文件(.m 文件)中,并且您在头文件(.h 文件)中有一个方法声明

// Header file (.h)
@interface myClass
{

}

- (void) myMethod;

@end

... 

// Implementation file (.m)

...

- (void) myMethod
{
    // do something
}
于 2011-08-17T04:43:29.190 回答
0

如果您在 XIB 中添加了按钮,那么您一定忘记使用 IBAction 添加其事件。并用 Touch up inside type 绑定它。如果仍然不起作用,则需要调试和检查,在 Button 上单击您正在执行的过程以及崩溃的时间点。

于 2011-08-17T08:30:01.750 回答
0

您将真正的 IBAction 放在 .m 文件中。

于 2015-06-24T16:24:53.937 回答