2014-09-17 1 views
1

У меня есть собственный класс UITableViewCell, который я хочу использовать для создания пользовательских ячеек таблицы. Я создал элемент xib пользовательской таблицы, а также файлы заголовка и реализации, все вызвали RTRepairOrderTableCell.m/.h/.xib.Зарегистрированный NIB, все еще получая ошибку утверждения, когда я использую dequeueReusableCellWithIdentifier

Моя проблема заключается в том, что даже если я установил идентификатор повторного использования ячейки таблицы в 0xвнутри файла .xib и зарегистрировал xib внутри моего контроллера табличного представления, я все еще получаю ошибки утверждения, когда он пытается удалить или создайте новую ячейку для использования.

Внутри моей точки зрения (таблица) контроллера У меня есть следующие:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    //Load the nib file 
    UINib *nib = [UINib nibWithNibName:@"RTRepairOrderTableCell" 
           bundle:nil]; 
    // Register this Nib, which contains the cell 
    [self.tableView registerNib:nib 
     forCellReuseIdentifier:@"RTRepairOrderTableCell"];  
} 

Там нет ошибок здесь и заканчивается viewDidLoad просто отлично.

Внутри моего cellForRowAtIndexPath У меня есть следующие:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{  
    RTRepairOrderTableCell *cell = [tableView dequeueReusableCellWithIdentifier:@"RTRepairOrderTableCell" forIndexPath:indexPath];  
    return cell; 
} 

По каждой статье я видел, что это должно работать так долго, как у меня есть идентификатор повторного набора правильно внутри файла XIb и зарегистрировать, что XIB внутри viewDidLoad в представлении класса контроллера, который будет отображать ячейки таблицы, так что я в недоумении, почему я получаю

*** Assertion failure in -[UITableView _dequeueReusableViewOfType:withIdentifier:], /SourceCache/UIKit/UIKit-2935.138/UITableView.m:5413 

ответ

5

оказывается, у меня было несколько осиротевших UIImage объекты внутри файла бобах, но за пределами из UITableViewCell, так что это были метательные ошибки, говорящие, что UITableViewCell должен быть самым верхним видом.

+1

Шахта была вызвана «UITapGestureRecognizer» в UITableViewCell nib по аналогичным причинам. –

0

Это может быть редкий случай, но из-за некоторых неаккуратных макаронных копий два разных пользовательских класса, используемых в моей таблице, имели тот же Идентификатор, указанный в Xib.

Переключение одной из этих ячеек, чтобы иметь другой Идентификатор в Инспекторе атрибутов, зафиксировал мои отказы в утверждении.

1

Я столкнулся с этим, и это сводило меня с ума. Но это была моя ошибка. Я установил идентификатор @ «Abc» в файле Nib, и я зарегистрировал один и тот же файл nib с другим идентификатором @ «Xyz». Удалил идентификатор из nib, оставил эту часть пустой и работал как чемпион. :)

+0

Ahh! Это было для меня тоже. – user1366265