Basically I'm reporting an achievement inside of Game Center. Here is the code for doing this in 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);
}
}];
}
}
Specifically I'm not sure how to complete the Completion Handler.
I tried this but I'm getting an 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.")
})
}
}
GKAchievement Class Reference : https://developer.apple.com/library/prerelease/ios/documentation/GameKit/Reference/GKAchievement_Ref/index.html#//apple_ref/occ/clm/GKAchievement/reportAchievements:withCompletionHandler:
GKAchievement.reportAchievements:
expect an array (not a single object) for the first parameter.
You need to put your achievement
in an array, or doing simply like so [achievement]
for the first parameter :
GKAchievement.reportAchievements([achievement], ...
I haven't check your completion handler, let us know if you have any issue there too.