Привет всем, у меня проблемы с поиском утечки памяти. все мои подсчеты сохраняются = 0, когда я их освобождаю, но все же я отмечаю утечку из следующего бита кода:
- (GKSession *) peerPickerController:(GKPeerPickerController *)picker sessionForConnectionType:(GKPeerPickerConnectionType)type {
inSession = [[GKSession alloc] initWithSessionID:gameSessionID displayName:nil sessionMode:GKSessionModePeer];
printf( "insession alloc on Start: %i\n", [inSession retainCount] );
return inSession;
}
Отменив одноранговый сборщик, поэтому, если вы не найдете никого, с кем можно связаться, я запускаю этот код, чтобы избавиться от всего, что связано с одноранговым сборщиком.
- (void)peerPickerControllerDidCancel:(GKPeerPickerController *)picker {
picker.delegate = nil;
mpicker.delegate = nil;
inSession.delegate = nil;
gameSession.delegate = nil;
if(inSession != nil) {
[self invalidateSession:inSession];
[inSession release];
inSession = nil;
}
[picker release];
picker = nil;
mpicker = nil;
[inSession release];
if(self.gameSession != nil) {
[self invalidateSession:self.gameSession];
[self.gameSession release];
self.gameSession = nil;
}
[self.gameSession release];
self.gameLabel.hidden = NO;
self.gameState = pongStateStartGame;
[gameSession release];
[inSession release];
[inSession dealloc];
[gameSession dealloc];
[mpicker dealloc];
}
Где-то код протекает, и я не могу понять, где я живу. Любая помощь с этим была бы удивительно оценена.