在 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 中删除行时出现核心数据错误 的相关文章

  • 搜索栏与节标题视图重叠

    我将搜索栏放在 tableHeaderView 内 在 iphone 6 上一切正常 但在 iphone 5s 上我得到这个奇怪的结果 override func viewDidLoad super viewDidLoad tableVie
  • UIView类中addSubview和insertSubview的区别

    有什么区别addSubview and insertSubView以编程方式添加视图时的方法 唯一的区别在于视图添加的位置 是否是最前面的视图 addSubview 或者在第 5 个子视图之前 insertSubview atIndex 或
  • iPhone应用程序中可以使用什么来代替工具提示?

    iPhone应用程序中可以使用什么来代替工具提示 触摸屏系统中工具提示的最佳替代品 工具提示通常是为具有光标的操作系统保留的 在触摸屏应用程序中 根本不需要工具提示 当您的应用程序在使用时 用户应该始终知道菜单在哪里 所有按钮的用途等等 因
  • 深入了解崩溃的根源

    我遇到了以下崩溃 我无法按需复制 但确实发生了足以引起用户注意的事件 该崩溃报告也已被符号化 怎么查原因啊 这似乎只发生在 4 1 上 Exception Type SIGSEGV Exception Codes SEGV ACCERR a
  • 从 iPhone 上传图像/音频到服务器无法发送大图像

    我不知道这是我的iPhone代码还是服务器的问题 我正在使用 NSURLConnection 将图像 音频从 iPhone 上传到服务器 如果图像和音频的大小小于 60KB 则可以正常上传 如果超过 60KB 我会从服务器收到 400 Ba
  • 保留“自我”的坏做法?

    我有一个简单的疑问 希望有人能解答 保留自我是不好的做法吗 我有一个想要创建的服务器请求对象 我希望能够通过以下方式使用它 ARequest request ARequest request someParam request delega
  • 在 Objective-C 中检查 Json 响应的空值

    AT null EA null AD2 OP null AdsLst EMs null ND MN null FN Sony LN J ZP 23456 CT 1 PP 0 cId 161464 Pos null WPExt null OS
  • reloadData 调用 numberOfSections、numberOfRows,而不是 cellForRowAtIndexPath

    首先 如果格式不正确 我很抱歉 这是第一次这样做 我已经使用 stackoverflow 来寻求帮助很长时间了 它非常有帮助 谢谢大家 但这是我第一次发布自己的问题 这个问题已经被问过很多次了 但是当我调用 myTable reloadTa
  • 发射图像偏离 20 像素(在 y 轴上)

    我有一个名为 Default png 的 320 480 大小的启动图像 并且该应用程序配置为还显示状态栏 当我的应用程序启动时 图像的前 20 个像素被状态栏截断并隐藏 根据 Apple 的 HIG 列出的 iPhone 和 iPod T
  • 如何在 iPhone 上获取移动国家/地区和网络代码

    有什么方法可以在 iPhone 上获取 mnc 和 mcc 号码吗 您需要 CoreTelephony 框架 CTTelephonyNetworkInfo networkInfo CTTelephonyNetworkInfo alloc i
  • 如何将 Default.png 置于横向模式?

    我有 Default png 480 320 图像 我的问题是 当我启动应用程序时 Default png 图像以横向模式显示 这怎么可能 首先 预先旋转您的初始图像 以便获得纵向和横向版本 然后 使用Default Portrait pn
  • 如何使用 Restkit 0.20.0 创建/发布新的托管对象到服务器?

    我很难找到创建新托管对象 设置其值以及使用 Restkit 保存到服务器的文档或示例 我有一篇 NSManagedObject 帖子 interface Post NSManagedObject property nonatomic ret
  • iPhone 上的加速器范围是多少?

    我似乎无法在网上找到任何关于此的文档 而且我正在谷歌搜索的内容给了我很多相互矛盾的信息 From iphonedevsdk com http www iphonedevsdk com forum iphone sdk development
  • 如何使用 NSUndoManager 支持替换 UITextView 中的文本?

    我希望能够以编程方式替换 UITextView 中的某些文本 因此我将此方法编写为 UITextView 类别 void replaceCharactersInRange NSRange range withString NSString
  • 为什么这个 OpenGL ES 代码在 iPhone 上速度很慢?

    我在学习 OpenGL ES 时稍微修改了 iPhone SDK 的 GLSprite 示例 结果发现它相当慢 即使在模拟器中 在最糟糕的硬件上 所以我一定做错了什么 因为它只有 400 个纹理三角形 const GLfloat sprit
  • 如何让 iPhone 发出蜂鸣声?

    什么代码可以让我在 iPhone 上发出标准的蜂鸣声 好吧 这取决于您想要什么样的声音 以下是如何使用 AVFoundation 音频框架播放声音 import
  • 在 iphone safari 浏览器中禁用浏览或选择文件按钮

    我想知道为什么select file or choose file在 iphone safari 中查看网页时 该按钮被禁用 谁能告诉我为什么会发生这种情况有什么方法可以启用它吗 谢谢 因为您无法从 iPhone 上传文件
  • AVAudioPlayer 重置当前播放的声音并从头开始播放

    我在使用 AVAudioPlayer 时遇到问题 我想重置当前正在播放的播放器并再次播放 我尝试以下但没有运气 声音播放一次 但第二次我选择按钮时它会停止声音 第三次再次启动声音 Stop the player and restart it
  • -[MyClassName copyWithZone:] 无法识别的选择器发送到实例

    我的应用程序崩溃了 原因是 MyClassName copyWithZone 无法识别的选择器发送到实例 我有两节课 假设 Class1 和 Class2 Class1 看起来像 Class1 h interface Class1 NSOb
  • AudioQueueNewInput 回调延迟

    无论我提供的缓冲区大小如何 提供给 AudioQueueNewInput 的回调都会以大致相同的时间间隔发生 例如 如果您有 0 05 秒的缓冲区并以 44k 录制 则回调将在大约 0 09 秒时首次调用 然后在 0 001 秒 之后立即发

随机推荐

  • 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按钮