1

私は何時間も試してきましたが、これを機能させることができません.GameCenterManagerクラスでは、これを持っています:

- (void) retrieveAchievmentMetadata {
self.achievementsDescDictionary = [[NSMutableDictionary alloc] init];

[GKAchievementDescription loadAchievementDescriptionsWithCompletionHandler:
 ^(NSArray *descriptions, NSError *error) {
     if (error != nil) {
         NSLog(@"Error %@", error);

     } else {
         if (descriptions != nil){
             for (GKAchievementDescription* a in descriptions) {
                 [achievementsDescDictionary setObject: a forKey: a.identifier];
                 NSLog(@"identifier %@", a.identifier);
             }
             NSLog(@"count %i", [achievementsDescDictionary count]);
         }
     }
 }];

}

それはすべて機能し、出力は良好で、カウントは良好ですが、別のクラスから GKAchievementDescription を取得するためにそれを呼び出そうとすると、常に (null) が返され、カウントは 0 です。

NSLog(@"count %i", [gameCenterManager.achievementsDescDictionary count]);
if (gameCenterManager.achievementsDescDictionary == NULL) {
    NSLog(@"ERROR");
}

私はこれに夢中になっています、どんな助けも素晴らしいでしょう。ありがとう。

4

1 に答える 1

0

self.achievementsDescDictionaryからの自己に問題がある可能性があります

.hで使用

@property (retain) NSMutableDictionary* achievementsDescDictionary;

そして.mに

@synthesize achievementsDescDictionary;
...
achievementsDescDictionary = [[NSMutableDictionary alloc] init];
于 2012-09-10T22:24:56.980 に答える