2011-12-22 62 views
0

我的应用程序不能似乎找到选择(submitScore :)但我已经宣布它SIGABRT“在堆栈不够框架”

这里:

@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?

感谢

回答

1

你指定myButton1的选择成为与- (void)submitScore:(id)sender签名的方法在现实中,当你的方法签名是- (void)submitScore

将选择器设置为myButton1@selector(submitScore)

+0

那么我该怎么做 – NoobMe 2011-12-22 06:41:50

+0

当你创建myButton1时,从'@ selector'的方法签名中删除冒号。 – 2011-12-22 06:44:50

+0

O_O现在即时得到这个错误'目标的远程移动/tmp/.XcodeGDBRemote-191-70 切换到远程MacOSX的协议 MEM为0x1000 0x3fffffff缓存 MEM 0x40000000之后的0xffffffff没有 MEM 00000000 0x0fff没有 运行 运行... [切换到线程7171] [切换到线程7171] sharedlibrary apply-load-rules全部 继续 编程接收信号:“EXC_BAD_ACCESS”。 /Developer_2/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/usr/lib/dyld'已更改;重新阅读符号。 数据格式化程序暂时不可用,将在“继续”后重新尝试。 (目前不安全致电dlopen。) kill quit' – NoobMe 2011-12-22 06:46:17

1

格式字符串期待三个值,只有被给出了两个

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

即使当我仍然没有那条线我仍然得到错误 – NoobMe 2011-12-22 06:41:17

+0

+1很好的捕获,但是这不会造成这种特殊的例外。 – 2011-12-22 06:41:25