Private Sub SubmitAchievement(Identifier As String, PercentComplete As Double)
Dim ach As NativeObject
ach = ach.Initialize("GKAchievement").RunMethod("alloc", Null).RunMethod("initWithIdentifier:", Array(Identifier))
ach.SetField("percentComplete", PercentComplete)
Wait For (Game.As(NativeObject).RunMethod("SubmitAchievement:", Array(ach))) GameCenter_AchievementSubmitted (Success As Boolean)
Log(Success)
Log(LastException)
End Sub
#if OBJC
@end
@interface B4IGameCenter (achievement)
@end
@implementation B4IGameCenter (achievement)
- (NSObject *)SubmitAchievement:(GKAchievement *)ach {
[GKAchievement reportAchievements:@[ach] withCompletionHandler:^(NSError *e) {
if (e != nil)
[B4I shared].lastError = e;
[B4IObjectWrapper raiseEventFromDifferentThreadWithExplicitSender:self :ach :@"_achievementsubmitted:" :@[@(e == nil)]];
}];
return ach;
}
#End If