У меня есть класс, который определяет настраиваемую контактную ячейку, называемую ContactItemCell, и файл xib, который выдает эту ячейку. Когда я создаю представление таблицы, он открывается, и шесть из этих классов ContactItemCell создаются. Когда я перемещаюсь назад, они не освобождаются, и когда я открываю табличное представление, создается еще 6. Вот код TableView:Пользовательский UITableViewCell не выпускается или не используется после навигации, утечки памяти
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
Contact* contact = [self contactAtIndexPath:indexPath];
static NSString *cellID = @"ContactItemWithTagsForBothCell";
ContactItemCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
if (cell == nil)
{
NSArray *arr = [[NSBundle mainBundle] loadNibNamed:@"ContactItemWithTagsForBothCell" owner:nil options:nil];
if (arr.count <= 0)
{
NSLog(@"couldnt find cell with ID: %@", cellID);
return nil;
}
cell = [arr firstObject];
}
[cell configureCellForContact:contact];
return cell;
}
FileOwner в файле XIb просто установить, чтобы быть пустым, который я предполагаю, что средства NSObject. Я пробовал искать сильный ссылочный цикл, чтобы узнать, поддерживается ли класс указателями, но я не видел ничего после дней расследования. Я действительно нахожусь на своем пределе, и я не уверен, что еще я могу сделать, я тоже использую инструменты, и вот как я понял, что они создаются 6 за раз, но я не могу найти что указывает на них. Почему это происходит? Я что-то делаю с табличным представлением? Если это не так, и вы думаете, что это сильный справочный цикл, то как я могу найти каждый объект, который указывает на этот ContactItemCell? Заранее спасибо!
Что говорит отладчик памяти? http://useyourloaf.com/blog/xcode-visual-memory-debugger/ –
Я расскажу об этом уроке, о котором я до сих пор не слышал об отладчике памяти, я очень ценю подсказку, и я вернусь вам в ближайшее время. – Minimi
@JoshHomann Чувак, что ты спас мне жизнь, я бы не нашел проблему без этого инструмента. Огромное спасибо. Проблема состояла в том, что старый разработчик перезаписал базовый uiviewcontroller и добавил tableview в массив, поэтому, когда диспетчер представлений был освобожден, представление таблицы не было. Я бы не нашел это без удивительного инструмента графика отладочной памяти. Ты потрясающий брат. – Minimi