Ну, вы создаете два ненужных массива.
Замените это:
NSArray *sortedArray = [self.items sortedArrayUsingDescriptors:sortDescriptors];
self.sortedItems = [NSArray arrayWithArray:sortedArray]; // memory leak 100% here
... этим:
self.sortedItems = [self.items sortedArrayUsingDescriptors:sortDescriptors];
Каждый раз, когда вы создаете массив, вы отправляете retain
объектам, которые хранятсяпо массиву.Если массив автоматически освобождается (что создают удобные методы, описанные выше), то точка, в которой отправляются их сообщения release
, не контролируется программистом.Это может привести к очевидным утечкам в зависимости от обстоятельств во время выполнения.