Большинство утечек памяти я решил сам, но этот довольно сложный, по моему мнению. Происходит следующее Мне нужно загрузить информацию из Facebook в табличном представлении, это табличное представление имеет функцию обновления. Все строки в этом tablview загружаются из массива, этот массив состоит из объектов данных, поскольку они должны быть отсортированы. Мой код выглядит следующим образом (я вырезал ненужные части).
Эта часть просматривает результаты из Facebook и помещает их в массив
- (void)request:(FBRequest*)request didLoad:(id)result
{
if ([result isKindOfClass:[NSDictionary class]]) {
//Setting single result into result dictionary
NSArray *resultArray = [result allObjects];
result = [resultArray objectAtIndex:0];
for(int i=0; i<13; i++){
//Set all retrieved data in containerArray
Post *newPost = [[[Post alloc] init] autorelease];
newPost.created_time = created_time1;
newPost.message = message1;
newPost.picture = picture1;
newPost.fbSource = fbSource1;
[containerArray insertObject:newPost atIndex:i];
//Reload the table in the tableView
[self.tableView reloadData];
}
NSSortDescriptor *sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"created_time"
ascending:NO] autorelease ];
sortedArray = [containerArray sortedArrayUsingDescriptors:[NSMutableArray arrayWithObject:sortDescriptor]];
[sortedArray retain];
}
}
Пока это работает и не дает утечек памяти. Но как только функция обновления будет вызвана. Эта функция снова запустится. И затем создает утечку памяти, я думаю, вероятно, из-за функции [sortedArray retain]. Но без этой функции массив не загружается, и я получаю EXC_BAD_ACCESS. Если я освобождаю sortedArray, я также получаю EXC_BAD_ACCESS, так как sortedArray ушел и не может быть вызван.
Кто-то знает, как это исправить? Thnx!