2011-01-22 3 views
3

Я был в тупике на этом довольно долгое время. Я понимаю, как разблокировать достижение в Game Center, и я даже получил целую систему обмена сообщениями. Но я не могу понять, как проверить, если это достижение уже разблокирован :(Убедитесь, что вы уже открыли достижение в Game Center/GameKit

Видимо, это не работает:.

GKAchievement *achievement = [[GKachievement alloc] initWithIdentifier:ident] autorelease]; 
NSLog(@"%i",achievement.completed); 

Это всегда прослеживает «0»

Разблокировка достижение делает работу:

GKAchievement *achievement = [[GKachievement alloc] initWithIdentifier:ident] autorelease]; 
achievement.percentComplete = 100; 

Так что это не то, что я сделал ошибку в целом достижения штуковины, это просто, что GameKit не может сказать мне, если достижение уже разблокировано или нет.

Буду очень признателен, если кто-то может мне помочь!

ответ

0

Я собираюсь начать реализацию этого самостоятельно.

Из того, что я читал из документации, что я думаю, что вам нужно сделать, это позвонить

loadAchievementsWithCompletionHandler: 

http://developer.apple.com/library/ios/documentation/GameKit/Reference/GKAchievement_Ref/Reference/Reference.html#//apple_ref/doc/uid/TP40009959-CH1-SW1

+0

Просто подтвердите, это именно то, как это сделать. У меня есть класс GameKitHelper, который управляет взаимодействиями GK, включая достижения. Работает очень хорошо. – brindy

4

загрузить ранее представленные достижения для текущего пользователя, нужно позвонить:

[GKAchievement loadAchievementsWithCompletionHandler: ^(NSArray *scores, NSError *error) 
{ 
    if(error != NULL) { /* error handling */ } 
    for (GKAchievement* achievement in scores) { 
     // work with achievement here, store it in your cache or smith 
    } 

}]; 

Вы знаете, что самый лучший способ начать с Game Center - достижения и высокие показатели - это посмотреть на демонстрационный прог ЭСТ Яблоко онлайн здесь: http://developer.apple.com/library/ios/#samplecode/GKTapper/Introduction/Intro.html

Посмотрите на код - это достаточно просто, чтобы быстро понять, что происходит, и она имеет локальный кэш достижения, подчиняясь различных советов лидера, и т.д. и т.п.