Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.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
iOS更新游戏中心成就_Ios_If Statement_Game Center_Gamekit_Achievements - Fatal编程技术网

iOS更新游戏中心成就

iOS更新游戏中心成就,ios,if-statement,game-center,gamekit,achievements,Ios,If Statement,Game Center,Gamekit,Achievements,我实施了gameKit,但现在出现了一个问题: 游戏中心没有显示我的成就进度,因此玩家无法获得这些成就。 我的成就中只有一项是正确的,我不知道为什么 更新 如果我只使用一个If语句(那么我只有一个成就),那么它工作得非常完美……因此它必须与我的If条件 -(void)updateHievents{ NSString*实现标识符; 浮动百分比=0.0; BOOL progressinlevelAchization=否; GK成就*水平成就=零; GK成绩*得分成绩=零; 如果(进展水平成就){

我实施了gameKit,但现在出现了一个问题: 游戏中心没有显示我的成就进度,因此玩家无法获得这些成就。 我的成就中只有一项是正确的,我不知道为什么

更新 如果我只使用一个If语句(那么我只有一个成就),那么它工作得非常完美……因此它必须与我的If条件


-(void)updateHievents{
NSString*实现标识符;
浮动百分比=0.0;
BOOL progressinlevelAchization=否;
GK成就*水平成就=零;
GK成绩*得分成绩=零;
如果(进展水平成就){
LevelAchization=[[GKAchization alloc]initWithIdentifier:AchizationIdentifier];
LevelAchization.percentComplete=进度百分比;
}

如果(分数可能是我的if分数不正确……但我不知道你的if语句是否完全错误,如果用户分数为0,则所有条件都得到满足,因此只有最后的成绩才会被解锁。你的意思是检查分数是否大于某个分数吗?你需要使用>=@andreamazz我的意思是,如果分数为例如13,t11分的成绩应该解锁,22分的成绩应该显示一个百分比……希望你理解我的意思。如果分数是13,你可以将
achievementIdentifier
编码为
Achievent\u 1000Total
,这就是为什么它是唯一更新的成绩
-(void)updateAchievements{
    NSString *achievementIdentifier;
    float progressPercentage = 0.0;

    BOOL progressInLevelAchievement = NO;

    GKAchievement *levelAchievement = nil;
    GKAchievement *scoreAchievement = nil;


    if (progressInLevelAchievement) {
        levelAchievement = [[GKAchievement alloc] initWithIdentifier:achievementIdentifier];
        levelAchievement.percentComplete = progressPercentage;
    }


    if (score <= 11) {
        progressPercentage = score * 100 / 11;
        achievementIdentifier = @"Achievement_11Points";
                    }
    if (score <= 22) {
        progressPercentage = score * 100 / 22;
        achievementIdentifier = @"Achievement_22Points";
        }

     if (score <= 55) {
        progressPercentage = score * 100 / 55;
        achievementIdentifier = @"Achievement_55Points";

//only the following achievement works
 if ([Score addScore] <= 1000) {
        progressPercentage = [Score addScore] * 100 / 1000;
        achievementIdentifier = @"Achievement_1000Total";
    }


    scoreAchievement = [[GKAchievement alloc] initWithIdentifier:achievementIdentifier];
    scoreAchievement.percentComplete = progressPercentage;

    NSArray *achievements = (progressInLevelAchievement) ? @[levelAchievement, scoreAchievement] : @[scoreAchievement];

    [GKAchievement reportAchievements:achievements withCompletionHandler:^(NSError *error) {
        if (error != nil) {
            NSLog(@"%@", [error localizedDescription]);
        }
    }];
}