2013-12-08 6 views
0

Я пытался создать CustomCell в Xcode 5 БЕЗ РАСПРОСТРАНЕНИЙ (idk, никогда не было моим делом), но кажется, что это невозможно. Кто-нибудь знает, как его решить?Создание CustomCells на Xcode5

Что я пробовал:

  1. Я создал ячейку в моем ViewController СИБ и соединил его с моим Viewcontrollers .h. Это хорошо работает, но работает только с более чем одной пользовательской ячейкой (enter link for the tut).

  2. То же, что и раньше, но теперь я подключил его к подклассу UITableViewCell, но тут приложение сработает.

Я установил идентификатор ячейки, но никак. У кого-нибудь есть идея?

EDIT 1: Я перепроверил свой код. теперь я получаю это, и я до сих пор думаю, что это Xcode 5 на основе:

Код:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 

static NSString *CellIdentifier = @"HomeLoginCell"; 
GSCustomLoginCell *tableCell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
NSLog(@"%d", indexPath.row); 
NSLog(@"%@", [tableSource objectAtIndex:indexPath.row]); 
if (indexPath.row == 0) { 
    tableCell.cellText.text = [tableSource objectAtIndex:indexPath.row]; 
    tableCell.cellIcon.image = [UIImage imageNamed:@"user_male-32"]; 
}else if(indexPath.row == 1){ 
    tableCell.cellText.text = [tableSource objectAtIndex:indexPath.row]; 
    tableCell.cellIcon.image = [UIImage imageNamed:@"enter-32"]; 
} 

return tableCell; 

}

Ошибка:

2013-12-08 02:02:37.646 Group2Study[3921:60b] *** Assertion failure in -[UITableView _configureCellForDisplay:forIndexPath:], /SourceCache/UIKit/UIKit-2903.23/UITableView.m:6246 

2013-12-08 02: 02: 37,648 Group2Study [3921: 60b] * Завершение приложения из-за неперехваченного исключения «NSInternalInconsistencyException», причина: «UITableView dataSource должен возвращать ячейку из tableView: cellForRowAtIndexPath: ' * Первый стек бросить вызов: (0x2d72de83 0x37a8a6c7 0x2d72dd55 0x2e0d60af 0x2ffe5649 0x2fec3cf5 0x2ffe54b9 0x2ffe432d 0x2ff8c6cd 0x2ff8bef1 0x2feb2353 0x2fb38943 0x2fb34167 0x2fb63425 0x2ff2f18f 0x2ff2d7f9 0x2ff2ca37 0x2ff2c9bf 0x2ff2c957 0x2ff25459 0x2feb8397 0x2ff2c6a9 0x2ff2c17d 0x2febd581 0x2febaae5 0x2ff2582d 0x10e2a9 0x2ff22aad 0x2ff224f3 0x2ff1cb41 0x2feb7a07 0x2feb6cfd 0x2ff1c321 0x3239c76d 0x3239c357 0x2d6f8777 0x2d6f8713 0x2d6f6edf 0x2d661471 0x2d661253 0x2ff1b5c3 0x2ff16845 0x11c661 0x37f83ab7) LibC++ abi.dylib: оканчивающиеся неперехваченного исключением типа NSException (lldb)

+1

Описание аварии, вероятно, будет полезно ... – nhgrif

+0

Он разбился на [self.window makeKeyAndVisible], прежде чем я установил свой VC в корневое окно. Он просто говорит, разбился на главную тему .. – SaifDeen

+0

Теперь ... какой-то код для контекста ...? – nhgrif

ответ

0
GSCustomLoginCell *tableCell = [tableView 
    dequeueReusableCellWithIdentifier:CellIdentifier]; 

if(!tableCell) { 
    tableCell = [[GSCustomLoginCell alloc] init]; 
} 

dequeueReusableCellWithIdentifier только возвращает ячейку когда он повторно использует ячейку, которая уже используется. Итак ... в первый раз, когда он пытается загрузить вашу таблицу, она не перерабатывает какие-либо ячейки, и этот метод вернет nil. Итак, сразу после вызова этого метода вы должны проверить, является ли оно nil или нет, а если оно равно nil, создайте экземпляр нового объекта.

Сообщение об ошибке объясняет, что вы не возвращаете UITableViewCell, потому что, как я объяснил, dequeueReusableCellWithIdentifier возвращал nil.

+0

facepalm .. Я должен спать ... Хорошо, прежде чем я приму свой ответ, он работает сейчас, но мои подвидные объекты (imageview & UILabel) не отображаются в таблице. Есть идеи? – SaifDeen

+0

В вашем вопросе я не вижу изображения или UILabel, если только вы не ссылаетесь на свойства вашего 'GSCustomLoginCell', и в этом случае вам может потребоваться опубликовать некоторый код из класса, прежде чем я смогу догадаться. – nhgrif

+0

Исправить свойства, какой код вы хотели бы видеть? Я только что создал GSCustomLoginCell, связал свойства и синтезировал свойства – SaifDeen

Смежные вопросы