2011-01-22 13 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

だけに確かに、これは正確にこれを行う方法です。私は成果を含むGKのやりとりを管理するGameKitHelperクラスを持っています。かなりうまくいく。 – 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で始めるための絶対的な最善の方法を知っている - 成績と得点が高いのは、デモプロジ電気ショック療法Appleはここでオンラインがあります。 http://developer.apple.com/library/ios/#samplecode/GKTapper/Introduction/Intro.html

は、コードを見てください - それはすぐに何が起こっているのかを把握するのに十分なシンプルだし、地元の成果キャッシュを備え、さまざまなリーダーボードに提出する、などなど

関連する問題