我現在正在與Game Center合作。我在ITC上創建了成就,我登錄到了Game Center。遊戲注意到了它。沒關係。但是我必須從Game Center加載所有成績並檢查其進度。我讀了Apple Reference,這裏是課程方法loadAchivementsWithCompletionHandler:
。如何正確加載和同步來自Game Center的成就?
我有這樣的事情,但是當我把它的話,我也沒有任何結果 - 沒有NSLog的控制檯。
[GKAchievement loadAchievementsWithCompletionHandler:^(NSArray *achievements, NSError *error) {
if (error){
NSLog(@"Error in syncing achievements: %@", error);
}
else {
NSLog(@"Number of achievements: %d", [achievements count]);
}
}];
我怎樣才能從遊戲中心正確獲得成就?我認爲achivements
數組應該大於0,但我不知道 - 任何NSLog不會被調用。
更新!
- (void)authenticateLocalUser:(void(^)(UIViewController *))delegate {
if (!_gameCenterAvailable) return;
NSLog(@"Authenticating local user...");
if (![GKLocalPlayer localPlayer].authenticated) {
[[GKLocalPlayer localPlayer] setAuthenticateHandler:^(UIViewController *viewController, NSError *error) {
if (viewController) {
delegate((UIViewController *)viewController);
}
else {
[NSThread sleepForTimeInterval:2];
[sharedHelper syncAchivements:^(NSString *delegate) {
}];
}
if (error) {
NSLog(@"Error in AuthenticateLocalUser: %@", [error description]);
}
}];
} else {
NSLog(@"Already authenticated!");
}
}
我打電話給我的身份驗證後,上述syncAchievement:
方法,我已經得到了響應:Number of achievements: 0
但我的應用程序創建具有2個achivements。哪裏有問題?
更新2!
我看到那個方法loadAchievementWithCompletionHandler只加載一些進展achivements。我明白這一點..