Есть ли утечка в этом коде копии? - PullRequest
0 голосов
/ 10 января 2011

Есть ли утечка в этом коде?

// Move the group
 Group *movedGroup = [[Group alloc] init];
 movedGroup = [[[[GroupList sharedGroupList] groups] objectAtIndex:fromIndex] copy];
 [[GroupList sharedGroupList] deleteGroup:fromIndex];
 [[GroupList sharedGroupList] insertGroup:movedGroup atIndex:toIndex];

 // Update the loadedGroupIndex pointer
 if (loadedGroupIndex < fromIndex & loadedGroupIndex >= toIndex) {
  loadedGroupIndex = loadedGroupIndex + 1;
 } else if (loadedGroupIndex > fromIndex & loadedGroupIndex < toIndex) {
  loadedGroupIndex = loadedGroupIndex - 1;
 } else if (loadedGroupIndex == fromIndex) {
  loadedGroupIndex = toIndex;
 }
 [movedGroup release]

1 Ответ

2 голосов
/ 10 января 2011

Первая созданная группа утечет. Вы потеряли ссылку на него (присваивая movedGroup = ...), и он не помечен для автоматического выпуска. Вы можете уменьшить эти первые две строки до:

Group *movedGroup = [[[[GroupList sharedGroupList] groups] objectAtIndex:fromIndex] copy];

и он будет делать то же самое, без утечки.

...