如何报告 Swift 的成就?

How to report an achievement in Swift?

基本上我是在 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);
              }
         }];
    }
}

具体来说,我不确定如何完成 Completion Handler。

我试过了,但出现错误:

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.")
            })
        }
    }

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

GKAchievement.reportAchievements: 第一个参数需要一个数组(不是单个对象)。

你需要把你的 achievement 放在一个数组中,或者像这样 [achievement] 第一个参数:

GKAchievement.reportAchievements([achievement], ...

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