Мой объект имеет частные элементы NSMutableArray.Я использую следующий код для сортировки объектов в элементах в порядке размера:
-(void)sortItems{
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"size" ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArray = [items sortedArrayUsingDescriptors:sortDescriptors];
NSMutableArray* newArray = [[NSMutableArray alloc] initWithArray: sortedArray];
[self setItems:newArray];
[sortDescriptor release];
}
Очевидно, что это утечка памяти, потому что каждый раз, когда я вызываю sortItems, я выделяюновая память и назначение предметов для указания на нее.Я попытался освободить старую память следующим образом:
NSMutableArray* newArray = [[NSMutableArray alloc] initWithArray: sortedArray];
NSMutableArray* oldArray = [self items];
[self setItems:newArray];
[oldArray release];
Но это дает ошибку EXC_BAD_ACCESS.Я прочитал об обработке памяти в objC, и я убежден, что я делаю здесь что-то принципиально неправильное.
Любая помощь будет принята с благодарностью!