*** Ошибка утверждения в –

Я использую ленивый код загрузки tableview apple в моем проекте, но имеет исключение в проекте. И ошибка – *** Assertion failure in -[UITableView _configureCellForDisplay:forIndexPath:] , вот мой код, пожалуйста, помогите. Но он работает в другом проекте. У меня нет метода делегирования.

  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"LazyTableCell"; static NSString *PlaceholderCellIdentifier = @"PlaceholderCell"; NSUInteger nodeCount = [self.entries count]; if (nodeCount == 0 && indexPath.row == 0) { UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:PlaceholderCellIdentifier]; cell.detailTextLabel.text = @"Loading…"; return cell; } UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (nodeCount > 0) { AppRecord *appRecord = [self.entries objectAtIndex:indexPath.row]; cell.textLabel.text = appRecord.name; if (!appRecord.appIcon) { if (self.mytable_view.dragging == NO && self.mytable_view.decelerating == NO) { [self startIconDownload:appRecord forIndexPath:indexPath]; } cell.imageView.image = [UIImage imageNamed:@"Placeholder.png"]; } else { cell.imageView.image = appRecord.appIcon; } } return cell; } 

4 Solutions collect form web for “*** Ошибка утверждения в –”

Поскольку cellForRowAtIndexPath возвращает значение nil а затем configureCellForDisplay ожидает UITableViewCell . В раскадровке или XIB нет ячейки, указанной с указанным идентификатором ячейки. Лучше проверить написание идентификатора.

Пожалуйста, проверьте делегата.

Добавили ли вы делегата или нет?

UITableViewDelegate , UITableViewDataSource

 import UIKit class UserFriendVC: UIViewController, UITableViewDelegate, UITableViewDataSource { override func viewDidLoad() { super.viewDidLoad() } } 

вы должны добавить cellIdentifier из «Показать инспектор атрибутов». Пожалуйста, подпарите, как показано ниже.

Сначала добавлен ниже код в ваш -(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath метод -(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath delagate.

 -(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ ResultCustomTableViewCell *cell = (ResultCustomTableViewCell *)[resultTableView dequeueReusableCellWithIdentifier:@"ResultTableViewCellIdentifier"]; ... //set the cell property ... return cell; } 

а затем перейдите в «Показать инспектор атрибутов», выбрав выбранный вид корневой ячейки.

введите описание изображения здесь

А затем вставьте одно и то же имя идентификатора в раздел идентификатора в разделе «Показать инспектор атрибутов». в этом случае я использую этот ResultTableViewCellIdentifier.

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

  - (void)viewDidLoad { [resultTableView registerNib:[UINib nibWithNibName:@"ResultCustomTableViewCell" bundle:nil] forCellReuseIdentifier:[ResultCustomTableViewCell reuseIdentifier]]; } -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ CGFloat height = 0.0; if (tableView == resultTableView){ height = 44.0f; } return height; } 

я надеюсь, это исправит вашу проблему

CellIdentifier Я ставлю, что cellForRowAtIndexPath возвращает cellForRowAtIndexPath .

 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"LazyTableCell"; static NSString *PlaceholderCellIdentifier = @"PlaceholderCell"; NSUInteger nodeCount = [self.entries count]; if (nodeCount == 0 && indexPath.row == 0) { UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:PlaceholderCellIdentifier]; if(cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:PlaceholderCellIdentifier] autorelease]; } cell.detailTextLabel.text = @"Loading…"; return cell; } UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if(cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; } if (nodeCount > 0) { AppRecord *appRecord = [self.entries objectAtIndex:indexPath.row]; cell.textLabel.text = appRecord.name; if (!appRecord.appIcon) { if (self.mytable_view.dragging == NO && self.mytable_view.decelerating == NO) { [self startIconDownload:appRecord forIndexPath:indexPath]; } cell.imageView.image = [UIImage imageNamed:@"Placeholder.png"]; } else { cell.imageView.image = appRecord.appIcon; } } return cell; } 

Вероятно, поэтому [UITableView _configureCellForDisplay:forIndexPath:] не работает … потому что cellForRowAtIndexPath возвращает нулевое значение, а затем configureCellForDisplay ожидает UITableViewCell .

  • Facebook iOS Выберите таблицу друзей Пусто
  • Динамические продукты в Apple In-App Purchase
  • ios Facebook добавить FBNativeAdView как Subview
  • Предупреждения Push-Firebase, не работающие над выпуском TestFlight / adHoc
  • Преобразование NSString в формат валюты
  • Facebook iOS API publishInstall
  • Что будет делать система загрузки URL-адресов, когда я вызываю «URLProtocol: didLoadData:» в пользовательском протоколе URL?
  • Образцы файлов в папке документов после установки приложения
  • как показать pull up для обновления управления в нижней части таблицы?
  • Получение черных клавиш в клавиатуре iOS
  • Направление аудиовыхода на громкоговоритель Bluetooth в iOS 7 без использования MPVolumeView
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.