Я получаю следующую ошибку:
* Завершение приложения из-за неперехваченного исключения "NSInternalInconsistencyException", причина: "невозможно удалить ячейку с идентификатором FontCell - должен зарегистрировать нить или класс для идентификатор или подключить прототип ячейки в раскадровке
Я не уверен, что я делаю неправильно. Я установил идентификатор ячейки (программно, так как он не был создан через Interface Builder) и сделал все, что я думал, что должен был делать в методах делегата, но я все еще получаю эту ошибку, когда пытаюсь загрузить UITableView.
Вот соответствующий код (стоит отметить, что я подклассифицировал UITableViewCell для параметров настройки):
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.fonts.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellIdentifier = @"FontCell";
FontCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
if (!cell) {
cell = [[FontCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"FontCell"];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
int row = indexPath.row;
cell.fontFamilyLabel.text = self.fonts[row];
return cell;
}
И вот единственный метод, который я изменил в моем подклассе UITableViewCell (FontCell):
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
self.fontFamilyLabel = [[UILabel alloc] initWithFrame:CGRectMake(5, 5, 200, 20)];
self.fontFamilyLabel.textAlignment = NSTextAlignmentCenter;
[self.contentView addSubview:self.fontFamilyLabel];
}
return self;
}
Что именно я делаю неправильно?