基本上我在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.")
})
}
}
答案 0 :(得分:3)
GKAchievement Class Reference:http://goo.gl/r9FB0b
GKAchievement.reportAchievements:
期望第一个参数的数组(不是单个对象)。
您需要将achievement
放在一个数组中,或者像[achievement]
这样对第一个参数执行操作:
GKAchievement.reportAchievements([achievement], ...
我没有检查您的完成处理程序,如果您有任何问题,请告诉我们。