Мы только что добавили Game Kit в нашу игру Cocos 2D.Работает нормально, но вызывает серьезные утечки памяти.Я прочитал все сообщения об этом на этом форуме (и на других форумах), но ничто, кажется, не помогает.Мы используем GameCenterManager из GKTapper.
Вот как мы создаем таблицу лидеров и показываем ее:
-(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];
}
Утечка очевидна, если вы посмотрите на использованный Real Mem в мониторе активности.Когда таблица лидеров показывается и отклоняется в первый раз, использование памяти приложением увеличивается на 11,42 МБ, затем оно увеличивается на ~ 0,3 МБ каждый раз, когда таблица лидеров отображается и отклоняется.Кроме того, каждый раз, когда вы просматриваете «Сегодня», «Эта неделя» и «Все время» в таблице лидеров игрового центра, съедается еще ~ 0,2 МБ.