Ios 游戏中心的成就每次都会得到奖励

Ios 游戏中心的成就每次都会得到奖励,ios,objective-c,game-center,Ios,Objective C,Game Center,我正在将成果添加到xCode项目中。下面我使用的代码在授予成果时效果很好,但唯一的问题是它经常在调试控制台的后台授予。每次我加载游戏时都会发生这种情况 我还发现,当成就第一次被授予时,完成横幅就会重复出现 我今天的问题是如何编辑代码,只奖励一次成就,显示横幅,然后再也不出现 -(void)Scoring { ScoreNumber = ScoreNumber + AddedScore; AddedScore = AddedScore - 1; if (AddedScor

我正在将成果添加到xCode项目中。下面我使用的代码在授予成果时效果很好,但唯一的问题是它经常在调试控制台的后台授予。每次我加载游戏时都会发生这种情况

我还发现,当成就第一次被授予时,完成横幅就会重复出现

我今天的问题是如何编辑代码,只奖励一次成就,显示横幅,然后再也不出现

-(void)Scoring
{
    ScoreNumber = ScoreNumber + AddedScore;
    AddedScore = AddedScore - 1;

    if (AddedScore < 0) {
        AddedScore = 0;
    }

    Score.text = [NSString stringWithFormat:@"%i", ScoreNumber];

    if (ScoreNumber > 110 && ScoreNumber < 1000) {
        LevelNUmber = 2;
        //self.view.backgroundColor = [UIColor greenColor];
        GKAchievement *achievement= [[GKAchievement alloc] initWithIdentifier:@"_level1easy"];
        achievement.percentComplete = 100.0;
        achievement.showsCompletionBanner = YES;
        if(achievement!= NULL)
            {
                NSArray *achievements = [NSArray arrayWithObjects:achievement, nil];
                [GKAchievement reportAchievements:achievements withCompletionHandler:^(NSError *error) {
                    if (error != nil) {
                        NSLog(@"Error in reporting achievements: %@", error);
                    } else {
                        NSLog(@"Achievement 1 Success");
                        }
                }];
            }
        }
-(无效)评分
{
ScoreNumber=ScoreNumber+AddedScore;
AddedScore=AddedScore-1;
if(AddedScore<0){
AddedScore=0;
}
Score.text=[NSString stringWithFormat:@“%i”,ScoreNumber];
如果(ScoreNumber>110&&ScoreNumber<1000){
LevelNUmber=2;
//self.view.backgroundColor=[UIColor greenColor];
gkAchatization*Achatization=[[gkAchatization alloc]initWithIdentifier:@“\u level1easy”];
完成百分比=100.0;
Achasition.showsCompletionBanner=是;
如果(成就!=NULL)
{
NSArray*成就=[NSArray arrayWithObjects:成就,无];
[GK成就报告成就:具有CompletionHandler的成就:^(N错误*错误){
如果(错误!=nil){
NSLog(@“成绩报告错误:%@”,错误);
}否则{
NSLog(“成就1成功”);
}
}];
}
}

如果我正确理解了你的问题,那么你只需要将你的成绩状态保存在某个地方,然后在进入评分方法时检查它。例如,可以尝试保存在NSUserdefaults中

NSUserDefaults *savedScoring = [NSUserDefaults standardUserDefaults];
[savedScoring setObject:self.showsCompletionBanner forKey:@"showsCompletionBanner"];
然后在游戏加载时检查此项