3

私はかなり長い間これに困惑してきました。Game Center でアチーブメントをアンロックする方法を理解しており、メッセージング システム全体が機能するようになりました。しかし、実績がすでにロック解除されているかどうかを確認する方法がわかりません:(

どうやらこれはうまくいきません:

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

常に「0」をトレースします。

実績のロックを解除すると機能します:

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

ですから、アチーブメント全体で間違いを犯したわけではなく、アチーブメントが既にロック解除されているかどうかを GameKit が教えてくれないだけです。

誰かがこれで私を助けることができれば、私はとても感謝しています!

4

2 に答える 2

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 がオンラインで公開しているデモ プロジェクトをご覧になることです 。 /Intro.html

コードを見てみましょう - 何が起こっているのかをすぐに把握できるほどシンプルで、ローカルの実績キャッシュ、さまざまなリーダー ボードへの送信などを特徴としています。

于 2011-09-30T07:14:01.503 に答える
0

これを自分で実装しようとしています。

私がドキュメントを読んだことから、あなたがする必要があるのは電話だと思います

loadAchievementsWithCompletionHandler: 

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

于 2011-01-24T16:14:32.320 に答える