UITableView dataSource должен вернуть ячейку из tableView: cellForRowAtIndexPath: - PullRequest
1 голос
/ 06 мая 2011

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

2011-05-06 10: 40: 17.004 instaCode1.3 [1500: 207] * Завершение приложения из-за необработанного исключения «NSInternalInconsistencyException», причина: «UITableView dataSource должен вернуть ячейку из tableView: cellForRowAtIndexPath: '

все было @ синтезировано и т. Д. *

#pragma mark -
#pragma mark Table view data source
// Customize the number of sections in the table view.
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}


// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 1;
}

//This method adds headings to my sections
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    NSString *title = nil;
    // Return a title or nil as appropriate for the section.
    switch (section) {
        case REG_SECTION:
            title = @"Enter Registration";
            break;
        default:
            break;
    }
    return title;;
}

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    if (indexPath.section == 0) {

        return cellRegistration;            

    }
    return 0;
}

Ответы [ 3 ]

4 голосов
/ 27 июня 2012

Функция cellForRowAtIndexPath: возвращает объект UITableViewCell, поэтому 0 не является допустимым параметром возврата. Вы должны вернуть ячейку.

1 голос
/ 27 июня 2012

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

Если оно равно нулю, вы можете использовать ALLOC, INIT, чтобы получить регистрацию ячейки и вернуть ее.

0 голосов
/ 06 мая 2011

Я думаю, что вы спрашиваете о проблеме с "return 0" из cellforRowAtIndexPath.Я бы поставил точку останова на этой строке и посмотрел бы, где она ломается, и если да, то почему раздел! = 0?

Является ли REG_SECTION == 0 (вы уверены?)

Редактировать : Что это дает вам в журнале?

    if (indexPath.section == 0) {
        NSLog(@" cellRegistration is %@",cellRegistration);
        return cellRegistration;            
    }
...