ゲームキットをCocos 2Dゲームに追加しました。正常に動作しますが、重大なメモリリークが発生します。私はこのフォーラム(および他のフォーラム)でそれに関するすべての記事を読んだが、何も助けてくれないようだ。 GKTapperのGameCenterManagerを使用しています。ゲームセンターのメモリ割り当て解除(Cocos2D)
これは、我々はリーダーボードを作成し、それを表示する方法である:
-(void)showLeaderBoard:(NSString *)lb withScore:(int)score
{
GKLeaderboardViewController *leaderboardController = [[[GKLeaderboardViewController alloc] init] autorelease];
if (leaderboardController != nil){
gcVC = [[UIViewController alloc] init];
leaderboardController.category = lb;
leaderboardController.timeScope = GKLeaderboardTimeScopeWeek;
leaderboardController.leaderboardDelegate = self;
[[[CCDirector sharedDirector] openGLView] addSubview: gcVC.view];
[gcVC presentModalViewController:leaderboardController animated:YES];
}
}
そして、ここで削除されます:
- (void)leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController
{
[gcVC dismissModalViewControllerAnimated:YES];
[gcVC.view.superview removeFromSuperview];
[gcVC release];
}
あなたが活動に使われる実際のMemのを見ればリークが明らかですモニター。リーダーボードが初めて表示されたり却下されたりすると、アプリケーションのメモリ使用量は11.42MBに増加し、リーダーボードが表示されて解任されるたびに0.3MB増加します。また、ゲームセンターのリーダーボードで「今日」、「今週」、「すべての時間」の間をブラウズするたびに、別の〜0.2MBが食べられます。
はこのCocos2DまたはKobold2Dですか?以前はKKAppDelegateを見たことがありませんでした(Cocos2D 1.1を使用)。 –
これはKobold2Dのものですが、どのアプリケーションデリゲートでも動作するはずです。キャストを変更して、アプリケーションデリゲートがrootViewControllerをプロパティとして公開していることを確認してください。 – LearnCocos2D