Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS7中不推荐使用ReportAchievementTwithCompletionHandler,但未指定替换_Ios_Ios7_Game Center - Fatal编程技术网

iOS7中不推荐使用ReportAchievementTwithCompletionHandler,但未指定替换

iOS7中不推荐使用ReportAchievementTwithCompletionHandler,但未指定替换,ios,ios7,game-center,Ios,Ios7,Game Center,有人找到了他的替代品吗 [GK成就报告AchieventWithCompletionHandler] 通常情况下,当物品被弃用时,文档指示替换。到目前为止,这篇文章还不是这样,我想把它从我们看到的另一个问题的可能原因列表中划掉。正在寻找相同的信息,并看到了你的文章,以下是我在没有找到任何信息后的结论: NSArray *achievements = [NSArray arrayWithObjects:achievement, nil]; [GKAchievement reportAchievem

有人找到了他的替代品吗

[GK成就报告AchieventWithCompletionHandler]


通常情况下,当物品被弃用时,文档指示替换。到目前为止,这篇文章还不是这样,我想把它从我们看到的另一个问题的可能原因列表中划掉。

正在寻找相同的信息,并看到了你的文章,以下是我在没有找到任何信息后的结论:

NSArray *achievements = [NSArray arrayWithObjects:achievement, nil];
[GKAchievement reportAchievements:achievements withCompletionHandler:^(NSError *error) {
   if (error != nil) {
      NSLog(@"Error in reporting achievements: %@", error);
   }
}];

这在iOS7中工作,没有问题

- (void)checkAchievements
{
    if(myScore >= 25000){
            GKAchievement *achievement= [[GKAchievement alloc] initWithIdentifier:@"Achiev1"];
            achievement.percentComplete = 100.0;
            achievement.showsCompletionBanner = YES;
            [self Achievements:achievement];

        }
}

-(void)Achievements:(GKAchievement*)achievement {

    NSArray *achievements = [NSArray arrayWithObjects:achievement, nil];
    [GKAchievement reportAchievements:achievements withCompletionHandler:^(NSError *error) {
        if (error != nil) {
            NSLog(@"Error in reporting achievements: %@", error);
        }
    }];

}
这是苹果的完整代码(与傻鹅的答案相同/相似)


很好的发现,显然iOS更喜欢这个。我想他们更喜欢一次对众多成就的呼唤,而不是一次对一个。。。可能是一些网络优化。
- (void) completeMultipleAchievements
{
    GKAchievement *achievement1 = [[GKAchievement alloc] initWithIdentifier: @"DefeatedFinalBoss"];
    GKAchievement *achievement2 = [[GKAchievement alloc] initWithIdentifier: @"FinishedTheGame"];
    GKAchievement *achievement3 = [[GKAchievement alloc] initWithIdentifier: @"PlayerIsAwesome"];
    achievement1.percentComplete = 100.0;
    achievement2.percentComplete = 100.0;
    achievement3.percentComplete = 100.0;

    NSArray *achievementsToComplete = [NSArray arrayWithObjects:achievement1,achievement2,achievement3, nil];
    [GKAchievement reportAchievements: achievementsToComplete withCompletionHandler:^(NSError *error)
             {
                  if (error != nil)
                  {
                      NSLog(@"Error in reporting achievements: %@", error);
                  }
             }];
      }