0
-(void)checkCollision{
if (CGRectIntersectsRect(player.frame, enemy.frame)) {

    [randomMain invalidate];
    [start setHidden:NO];

    CGRect frame = [player frame];
    frame.origin.x = 137.0f;
    frame.origin.y = 326.0;
    [player setFrame:frame];

    CGRect frame2 = [enemy frame];
    frame2.origin.x = 137.0f;
    frame2.origin.y = 20.0;
    [enemy setFrame:frame2];


    [randomMain invalidate];
    [start setHidden:NO];

    [timer invalidate];
    time.text = @"0";

您好,我面临的问题是我尝试在下面创建一个警报视图,但我收到一条错误消息:一元表达式的参数类型“void”无效。在线阅读:-(void) alert1:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)ButtonIndex { 干杯

    time.text = @"0"; 
    [timer invalidate];




          NSString *timemessage = [NSString stringWithFormat:@"Unlucky! You survived for %i seconds!", timenumber];
              UIAlertView *alert1 = [[UIAlertView alloc] initWithTitle:@"You've Been Caught!" message:timemessage delegate:nil cancelButtonTitle:@"Try Again" otherButtonTitles:@"Show Leaderboard", @"Submit To game Center",nil];
    [alert1 show];




              -(void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)ButtonIndex {
        if (ButtonIndex == 1) {
        GKScore *myScore = [[GKScore alloc]
                            initWithCategory:@"*****"];
            myScore.value = timenumber;



        }
        }










                }}
            ;
4

1 回答 1

0

这条线-(void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)ButtonIndex {是一种新方法的开始。它不能被封闭在里面checkCollision。你需要把它和它的所有代码移到外面。checkCollision如果你愿意,它可以在结束后 立即进行。您还需要将 UIAlertView 的委托设置为要接收alertView:clickedButtonAtIndex:回调的对象。通常是这样self。像这样的东西:

-(void)checkCollision {
    // Blah, blah, ....
    NSString *timemessage = [NSString stringWithFormat:@"Unlucky! You survived for %i seconds!", timenumber];
    UIAlertView *alert1 = [[UIAlertView alloc] initWithTitle:@"You've Been Caught!" message:timemessage delegate:self cancelButtonTitle:@"Try Again" otherButtonTitles:@"Show Leaderboard", @"Submit To game Center",nil];
    [alert1 show];
}

-(void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)ButtonIndex {
    if (ButtonIndex == 1) {
        GKScore *myScore = [[GKScore alloc] initWithCategory:@"*****"];
        myScore.value = timenumber;
    }
    // Handle other button choices ....
}
于 2012-08-20T20:10:22.440 回答