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

2023-12-30

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

如果我点击Edit导航栏中的按钮,然后选择一行并单击Delete按钮,该行被删除,一切顺利结束。

但是,如果我滑动以显示连续的“删除”按钮并单击“删除”按钮,应用程序将崩溃并出现以下错误:

2010-01-06 15:25:18.720 Take10[14415:20b] 严重的应用程序错误。核心数据更改处理期间捕获异常:-[NSCFArray objectAtIndex:]: index (1)超出边界(1) with userInfo (null)

2010-01-06 15:25:18.721 Take10[14415:20b] 由于未捕获的异常“NSRangeException”而终止应用程序,原因:“*** -[NSCFArray objectAtIndex:]:索引(1)超出界限(1)”

当然,错误中的索引号会根据我尝试删除行的部分中的行数而变化,并且该数字比尝试删除后表部分中剩余行数多 1。

这是我尝试从 fetchedResultsController 中删除数据的代码。相同的方法响应这两种情况,所以我不明白为什么它在滑动时崩溃。

- (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();
    }
  }   
}

有任何想法吗???

Thanks

Jk


Jeff LaMarche 在 NSFetchedResultsController 方面做了一些出色的工作。

尝试在这里使用他的模板:http://iphonedevelopment.blogspot.com/2010/01/navigation-based-core-data-application.html http://iphonedevelopment.blogspot.com/2010/01/navigation-based-core-data-application.html

看看这是否能解决您的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 tableView 中删除行时出现核心数据错误 的相关文章

随机推荐

  • android.util.Patterns.EMAIL_ADDRESS 正在验证无效电子邮件

    这些是一些无效的电子邮件 电子邮件受保护 cdn cgi l email protection 电子邮件受保护 cdn cgi l email protection 我在以下网站检查了上述电子邮件 所有这些邮件均返回无效 http isem
  • 修改(简化)主题标题以在 url 中显示

    我正在用 PHP 创建一个小型留言板 我需要 简化 主题标题以将其显示在主题的 url 中 例子 Ceci est un sujet d exemple变成ceci est un sujet d exemple J ai t la plag
  • 从 HTTP 切换到 HTTPS,失去了所有 Facebook“点赞”计数

    我从http to https两个月前 现在我失去了所有的 喜欢 即使当我使用脸书调试工具 https developers facebook com tools debug 现在它之间的计数相同http and https 有人知道这是否
  • 在类中声明动态 2D 矢量

    我们尝试使用 2D 向量 因为我们想要一个能够动态增长的 2D 数组 我们尝试过这个 在类声明中 vector
  • 使用经典 asp 收集数组中的第一个元素

    我有一个经典 asp 中的二维数组 我的目标是找到该数组中的第一个元素并将其保存在变量中 之后剩余的元素 第一个元素除外 保存在同一个数组中 例子 如果 aryReturn 是一个类似数组 aryReturn 0 0 1001 aryRet
  • Android SDK 管理器中的 MIPS 系统映像是什么?

    对于每个 SDK 我都有一个安装解决方案MIPS system image 它是什么 它有什么作用以及何时有人使用它 如果我不安装它会发生什么 它是什么 它是一个模拟器映像 可模拟具有 MIPS CPU 而不是 ARM 或 x86 CPU
  • 在 PyPy 上运行 Scrapy

    是否可以运行Scrapy on PyPy 我浏览了文档和 github 项目 但唯一的地方PyPy提到的是有一些单元测试正在执行PyPy2年前 参见PyPy support https github com scrapy scrapy pu
  • 布尔值在 Hibernate 和 MySQL 中无法正确映射

    我正在尝试将存在查询的结果 返回 TRUE FALSE 从 MySQL 数据库映射到 POJO 通过结果集转换器 我希望这个存在查询的结果可以映射到布尔值 但它没有并抛出以下错误 org hibernate PropertyAccessEx
  • Android中的ActivityThread异常?

    我正在执行搜索存储在数据库中的位置的任务 之后我必须在相应的位置上放置一个图钉 我对快速搜索框 QSB 进行了修改以搜索我的应用程序中的数据库 为了获得 QSB 性能 我遵循 API 演示中的搜索词典示例 当我单击搜索建议时 它会重新加载当
  • android:使用多个place_id调用Google API .getPlaceById

    为了减少 API 调用次数 我尝试通过一次传递多个 place id 最多 10 个 来查询地点详细信息 除了文档之外 我没有找到任何有用的信息 https developers google com android reference c
  • 需要在 Ruby 中将数组拆分为指定大小的子数组[重复]

    这个问题在这里已经有答案了 我有一个类似这样的数组 arr 4 5 6 7 8 4 45 11 我想要一个像这样的奇特方法 sub arrays split arr 3 这应该返回以下内容 4 5 6 7 8 4 45 11 注意 这个问题
  • 通过url获取json数据并在python中使用(simplejson)

    我想这一定有一个简单的答案 但我很挣扎 我想获取一个 url 输出 json 并在 python 中的可用字典中获取数据 我被困在最后一步了 gt gt gt import urllib2 gt gt gt import simplejso
  • 将 ES6 类对象序列化为 JSON

    class MyClass constructor this foo 3 var myClass new MyClass 我想序列化myClass对象转为 json 我能想到的一种简单方法是 因为每个成员实际上都是 javascript 对
  • 检查整型变量中是否设置了标志

    我正在制作自己的简单绘图引擎 我试图使用我认为所谓的按位比较来确定变量是否已设置为特定值 但我可能错了 我一直对以下内容以及如何使用它感到有点困惑 int DRAW REPEAT X 70001 I have a feeling I sho
  • 将毫秒格式设置为 simpledateformat

    将毫秒格式化为 SimpleDate 格式时 我遇到一个奇怪的结果 输出是 Start date time 11 06 30 09 45 48 970 End date time 11 06 30 09 45 52 831 Executio
  • 使用xquery从xml中提取数据的最佳方法

    考虑以下 xml
  • ValueError:序数必须 >= 1

    这段代码 从谷歌金融获取直线的 2 个坐标 并将第三个点放置在同一条线上一定距离处 import datetime as dt from datetime import timedelta as td import matplotlib p
  • 从 URL 加载图像并将其显示在 iPhone 应用程序中的更快方法

    我使用以下代码在 ImageView 中显示图像 imgbackBG image UIImage imageWithData NSData dataWithContentsOfURL NSURL URLWithString NSString
  • Highcharts 不会调整选项卡内图表的大小

    我正在使用带有选项卡的 Twitter Bootstrap 我有多个选项卡和每个选项卡内的图表 调整浏览器大小后 不在当前活动选项卡上的图表不会调整大小 事实上 它看起来很有趣 有一个细条 当前活动选项卡工作正常 有谁见过这个问题并且有任何
  • 在 tableView 中删除行时出现核心数据错误

    我有一个 UITableViewController 管理分组的 tableView tableView 是从 fetchedResultsController 填充的 如果我点击Edit导航栏中的按钮 然后选择一行并单击Delete按钮