SIGABRT «недостаточно кадров в стеке» - PullRequest
0 голосов
/ 22 декабря 2011

мое приложение не может найти селектор (submitScore :), но я уже объявил его

здесь:

 @interface Highscores (Private)
    - (void)loadCurrentPlayer;
    - (void)loadHighscores;
    - (void)updateHighscores;
    - (void)saveCurrentPlayer;
    - (void)saveHighscores;
    - (void)button1Callback:(id)sender;
    - (void)button2Callback:(id)sender;
    -(void)button3Callback:(id)sender;
    -(void)submitScore:(id)sender;
    -(void)viewBoard:(id)sender
@end

тогда это называется здесь:

    UIButton *mybutton1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    mybutton1.frame=CGRectMake(80, 50, 150, 40);
    [mybutton1 setTitle:@"Submit Score" forState:UIControlStateNormal];
    [mybutton1 addTarget:self action:@selector(submitScore:) forControlEvents:UIControlEventTouchUpInside];
    UIButton *mybutton2 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    mybutton2.frame=CGRectMake(80,100,150,40);
    [mybutton2 setTitle:@"View Leaderboard" forState:UIControlStateNormal];
    [mybutton2 addTarget:self action:@selector(viewBoard:) forControlEvents:UIControlEventTouchUpInside];

    [myView addSubview:mybutton1];
    [myView addSubview:mybutton2];
    [myView release];

}

-(void)submitScore
{
    NSString *request_url = [NSString stringWithFormat: @"http://192.168.18.8/lboard/addrank.php?did=%@&sre=%@&nme=%@&fmt=jsn",
                             currentScore, currentPlayer];
    NSURL *url = [NSURL URLWithString:request_url]; 
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
    request.delegate=self;
    [request setDidFinishSelector:@selector(requestFinished:)];
    [request setDidFailSelector:@selector(requestFailed:)]; 
    [request startAsynchronous];

всякий раз, когда я нажимаю одну из этих 2 кнопок, я получаю эту ошибку:

2011-12-22 14:27:32.462 tweejump[5381:707] -[Highscores submitScore:]: unrecognized selector sent to instance 0x267970
2011-12-22 14:27:32.469 tweejump[5381:707] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Highscores submitScore:]: unrecognized selector sent to instance 0x267970'

terminate called throwing an exceptionProgram received signal:  “SIGABRT”.

Я пробовал решения по другим темам, таким как слабое связывание библиотеки, но все равно получаю эту ошибку.

что еще мне делать? как я могу удалить SIGABRT?

спасибо

Ответы [ 2 ]

1 голос
/ 22 декабря 2011

Вы указали селектор myButton1 для метода с подписью - (void)submitScore:(id)sender, когда в действительности ваша подпись метода - (void)submitScore.

Установите селектор на myButton1 на @selector(submitScore).

1 голос
/ 22 декабря 2011

Строка формата ожидает три значения и получает только два

NSString *request_url = [NSString stringWithFormat: @"http://192.168.18.8/lboard/addrank.php?did=%@&sre=%@&nme=%@&fmt=jsn",
                         currentScore, currentPlayer];
...