【问题标题】:Invalid argument type void to unary expression一元表达式的无效参数类型无效
【发布时间】:2012-08-18 01:07:54
【问题描述】:

我目前正在制作一个应用程序并且遇到了一些困难,这里是代码:

-(void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)ButtonIndex {
              if (ButtonIndex == 1) {

                   - (void) reportScore: (int64_t) score forCategory: (NSString*) category
                   {
                       GKScore *scoreReporter = [[[GKScore alloc] initWithCategory:@"123"] autorelease];
                       scoreReporter.value = score;

                       [scoreReporter reportScoreWithCompletionHandler:^(NSError *error) {
                           if (error != nil)
                           {
                               // handle the reporting error
                           }
                       }];
                       else if (ButtonIndex==2){
                           - (void) showLeaderboard:
                           {
                               GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init];
                               if (leaderboardController != nil)
                               {
                                   leaderboardController.leaderboardDelegate = self;
                                   [self presentModalViewController: leaderboardController animated: YES];
                               }
                           }

                       }

                   }


                  -(void) leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController{

                      [self dismissModalViewControllerAnimated:YES];

                   }



                   }



              }

我的问题是就行了:-(void)reportScore:(int64_t)............ 它说“一元表达式无效的参数类型无效”

请帮忙,谢谢。

【问题讨论】:

  • 为什么要在方法中声明方法?
  • 是的,但我不知道把它放在哪里,以及我将如何通过这个

标签: iphone ios xcode alert void


【解决方案1】:

您在另一个方法中声明方法,这是您无法做到的。分别声明所有方法,并在适当的地方调用它们。

- (void) reportScore: (int64_t) score forCategory: (NSString*) category
 {
                   GKScore *scoreReporter = [[[GKScore alloc] initWithCategory:@"123"] autorelease];
                   scoreReporter.value = score;

                   [scoreReporter reportScoreWithCompletionHandler:^(NSError *error) {
                       if (error != nil)
                       {
                           // handle the reporting error
                       }
                   }];
}
- (void) showLeaderboard:
   {
                       GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init];
                       if (leaderboardController != nil)
                       {
                           leaderboardController.leaderboardDelegate = self;
                           [self presentModalViewController: leaderboardController animated: YES];
                       }
   }
-(void) leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController
{

              [self dismissModalViewControllerAnimated:YES];

}
-(void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)ButtonIndex {
          if (ButtonIndex == 1)
            {
                [self reportScore:score forCategory:cat];
             }
          else if (ButtonIndex==2)
            {
                 [self showLeaderboard];
            }

 }

【讨论】:

  • 干杯,但有一件事,我在节目排行榜部分出现错误:“-(void) showLeaderboard:{”错误隐约显示“预期标识符”并指向括号。请帮忙。再次感谢您的第一点建议
  • 哎呀,错过了那个错误。在showLeaderboard之后取出:。它应该只是读取 -(void) showLeaderboard {
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-15
  • 2011-12-10
  • 1970-01-01
  • 2016-06-01
  • 2014-05-19
  • 1970-01-01
相关资源
最近更新 更多