2014-11-25 2 views
0

Я получаю сообщение об ошибке при запуске моего приложения в Xcode (завершение приложения из-за неперехваченного исключения). Ниже я вставил сообщение об ошибке и, как я считаю, является частью кода, создающего проблему. Я новичок и просто изучаю цель c, поэтому, пожалуйста, будьте спокойны со мной. Спасибо!Причина: «не удалось удалить ячейку с идентификатором

int main(int argc, char * argv[]) { 
    @autoreleasepool { 
     return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); Thread 1:signal SIGABRT 
    } 
} 
  • Ошибка Сообщение:

    2014-11-25 10: 07: 19,794 SamplePhotoReDo [81276: 108898068] * Отказ Утверждение в - [UITableView dequeueReusableCellWithIdentifier: forIndexPath:], /SourceCache/UIKit_Sim/UIKit-3318.16.14/UITableView.m:6116 2014-11-25 10: 07: 19.798 SamplePhotoReDo [81276: 108898068] * Завершение приложения из-за неперехваченного исключения «NSInternalInconsistencyException», причина: «невозможно dequeue ячейка с идентификатором AllPhotosCel л - необходимо зарегистрировать перо или класс для идентификатора или подключения ячейки прототипа в раскадровке « *** Первый стек бросить вызов:»

сценарий, который я считаю, что вызывает ошибку:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = nil; 
    NSString *localizedTitle = nil; 

    if (indexPath.section == 0) { 
     cell = [tableView dequeueReusableCellWithIdentifier:AllPhotosReuseIdentifier forIndexPath:indexPath]; 
     localizedTitle = NSLocalizedString(@"All Photos", @""); 
    } else { 
     cell = [tableView dequeueReusableCellWithIdentifier:CollectionCellReuseIdentifier forIndexPath:indexPath]; 
     PHFetchResult *fetchResult = self.collectionsFetchResults[indexPath.section - 1]; 
     PHCollection *collection = fetchResult[indexPath.row]; 
     localizedTitle = collection.localizedTitle; 
    } 
    cell.textLabel.text = localizedTitle; 

    return cell; 
} 
+0

ключ заключается в следующем: «необходимо зарегистрировать перо или класс для идентификатора или подключения ячейки прототипа в качестве toryboard. Это означает, что вы должны сообщить Xcode, какая ячейка принадлежит идентификатору ячейки. Вы можете сделать это в коде или в Interface Builder. – dasdom

+0

Не обращайте внимания, думаю, я нашел проблему – Ray

+0

Спасибо вам за ваш быстрый ответ, но я думаю, что я решил проблему. В раскадровке изменилось содержимое табличного представления с динамического на статическое .. Это исправило первое сообщение об ошибке, но теперь у меня есть другое сообщение об ошибке: *** Завершение приложения из-за неотображенного исключения «NSRangeException», причина: *** - [__ NSArrayI objectAtIndex:]: index 2 за пределами границ [0 .. 0] ' – Ray

ответ

0

в ViewDidLoad добавить:

[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:AllPhotosReuseIdentifier]; 
Смежные вопросы