如何在Swift中报告成就?

时间:2015-03-18 15:58:29

标签: ios swift game-center

基本上我在Game Center内部报道了一项成就。以下是在Objective-C中执行此操作的代码:

(void) reportAchievementIdentifier: (NSString*) identifier percentComplete: (float) percent
{
    GKAchievement *achievement = [[GKAchievement alloc] initWithIdentifier: identifier];
    if (achievement)
    {
         achievement.percentComplete = percent;
         [GKAchievement reportAchievements:@[achievement] withCompletionHandler:^(NSError *error)
         {
              if (error != nil)
              {
                  NSLog(@"Error in reporting achievements: %@", error);
              }
         }];
    }
}

具体来说,我不确定如何完成完成处理程序。

我尝试了这个但是我收到了一个错误:

class func ReportAchievment(identifier : String, percentComplete : Double)
    {
        var achievement = GKAchievement(identifier: identifier)

        if(achievement != nil)
        {
            achievement.percentComplete = percentComplete;


            GKAchievement.reportAchievements(achievement, withCompletionHandler: { (error : NSError!) -> Void in
                println("Hello, its reported.")
            })
        }
    }

1 个答案:

答案 0 :(得分:3)

  

GKAchievement Class Reference:http://goo.gl/r9FB0b

GKAchievement.reportAchievements:期望第一个参数的数组(不是单个对象)。

您需要将achievement放在一个数组中,或者像[achievement]这样对第一个参数执行操作:

GKAchievement.reportAchievements([achievement], ...

我没有检查您的完成处理程序,如果您有任何问题,请告诉我们。