删除行时出现核心数据错误

时间:2017-05-05 04:50:52

标签: objective-c core-data

我有一个管理分组tableView的UITableViewController。 tableView是从fetchedResultsController填充的。

如果我单击NavigationBar中的“编辑”按钮,然后选择一行并单击“删除”按钮,该行将被删除,并且所有行都将结束。

但是,如果我滑动以显示行中的“删除”按钮并单击“删除”按钮,则应用程序崩溃并显示以下错误:

  

CoreData:错误:严重的应用程序错误。抓住了例外   在核心数据更改处理期间。这通常是一个bug   NSManagedObjectContextObjectsDidChangeNotification的观察者。的 *    - [__ NSPlaceholderArray initWithObjects:count:]:尝试使用userInfo(null)从对象[0]插入nil对象2017-05-05 10:02:11.780   bibleapp [844:18560] * 由于未捕获的异常而终止应用程序   'NSInvalidArgumentException',原因:'*** - [__ NSPlaceholderArray   initWithObjects:count:]:尝试从对象[0]

插入nil对象

我正在使用此删除的代码

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
 {

    if (editingStyle == UITableViewCellEditingStyleDelete) {
    // Delete the managed object for the given index path
    NSManagedObjectContext *context = [fetchedResultsController managedObjectContext];
    [context deleteObject:[fetchedResultsController objectAtIndexPath:indexPath]];

    // Save the context.
    NSError *error = nil;
    if (![context save:&error]) {
        /*
         Replace this implementation with code to handle the error appropriately.

         abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. If it is not possible to recover from the error, display an alert panel that instructs the user to quit the application by pressing the Home button.
         */
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    }
  }   
}

0 个答案:

没有答案