Your first leak is caused by what you call:
[sortedDummyArray retain]
You already called alloc, which does this, but you only let it go once at the end (so delete the line above). Then you also reassign it, which is wrong.
, finalArray alloc . :
NSMutableArray *finalArray = [[NSMutableArray alloc]initWithArray:sortedDummyArray];
:
NSMutableArray *finalArray = [NSMutableArray arrayWithArray:sortedDummyArray];
:
[finalArray release]
, :
- (void)viewDidDisappear:(BOOL)animated {
[playerArray removeAllObjects];
NSArray *sortedDummyArray = [selectedPlayersArray sortedArrayUsingSelector:@selector(compare:)];
NSMutableArray *finalArray = [NSMutableArray arrayWithArray:sortedDummyArray];
int xx = [sortedDummyArray count];
int yy;
int counter = 0;
int rr = 0;
for (int oo = 0; oo < xx; oo++) {
yy = [finalArray count];
for (int zz = 0; zz < yy; zz++) {
if ([[sortedDummyArray objectAtIndex:oo] isEqualToString:[finalArray objectAtIndex:rr]]) {
counter++;
if (counter > 1) {
[finalArray removeObjectAtIndex:rr];
rr--;
counter--;
}
}
rr++;
}
counter = 0;
rr = 0;
}
AccessQuestionsDB *shufflePlayersFunction = [AccessQuestionsDB new];
finalArray = [shufflePlayersFunction shufflePlayers: finalArray];
[shufflePlayersFunction release];
TempPlayersInTheGame *savePlayersInTheGame = [TempPlayersInTheGame new];
[savePlayersInTheGame saveSelectedPlayers:finalArray];
[savePlayersInTheGame release];
[super viewDidDisappear:animated];
}
overkill , NSSet ( ), NSArray , :
- (void)viewDidDisappear:(BOOL)animated {
[playerArray removeAllObjects];
NSSet *uniquePlayers = [NSSet setWithArray:selectedPlayersArray];
AccessQuestionsDB *shufflePlayersFunction = [AccessQuestionsDB new];
NSArray *finalArray = [shufflePlayersFunction shufflePlayers: [uniquePlayers allObjects]];
[shufflePlayersFunction release];
TempPlayersInTheGame *savePlayersInTheGame = [TempPlayersInTheGame new];
[savePlayersInTheGame saveSelectedPlayers:finalArray];
[savePlayersInTheGame release];
[super viewDidDisappear:animated];
}