Разработка iPhone: ошибка SIGABRT - PullRequest
0 голосов
/ 17 августа 2011

Я очень новичок в разработке для 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 ]

0 голосов
/ 24 июня 2015

Вы положили настоящий IBAction в файл .m.

0 голосов
/ 17 августа 2011

Возможно, метод, которому вы назначили кнопку для вызова при прикосновении, не существует, например,

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
}
0 голосов
/ 17 августа 2011

Если вы добавили кнопку в XIB, значит, вы забыли добавить ее событие с помощью IBAction. и связать его с помощью Touch Up внутри типа. если все еще не работает, вам нужно отладить и проверить, при нажатии кнопки, какую процедуру вы выполняете и в какой момент происходит сбой.

0 голосов
/ 17 августа 2011

Лучший способ найти SIGBART в вашем приложении - использовать инструмент отладки, где вы можете найти точное местоположение приложения, получающего этот сигнал.Ваш код выглядит нормально, возможно, в вашем файле класса b будет какая-то ошибка

Надеюсь, это поможет ....

...