iOS 错误“请求无效部分的矩形”是什么意思?

2023-11-27

谷歌根本没有透露任何关于此错误消息的帖子。我在 iOS 5 中尝试更新 UITableView 时遇到了这个问题。虽然确切的代码有点复杂,但这就是我对表和包含表数据的 NSMutableArray 所做的事情。这些调用是通过 PerformSelectorOnMainThread 调用从主线程之外进行的,如下面的代码片段所示。 NSMutableArray 部分是一个数组数组,每个数组代表一个部分,其中这些辅助数组是带有出现在表中的文本的 NSString。

从主线程开始:

[table performSelectorOnMainThread: @selector(beginUpdates) withObject: nil waitUntilDone: YES];

从另一个performSelectorOnMainThread调用的主要代码:

// Make sure the requested section exists.
if (sections == nil)
    sections = [[NSMutableArray alloc] init];
while (section >= [sections count]) {
    NSMutableArray *newArray = [[NSMutableArray alloc] init];
    [sections addObject: newArray];

    [table insertSections: [NSIndexSet indexSetWithIndex: [sections count]] 
                                        withRowAnimation: UITableViewRowAnimationNone];
}

// Insert the new row in the section.
NSMutableArray *rowArray = [sections objectAtIndex: section];
if (row > [rowArray count])
    row = [rowArray count];
[rowArray insertObject: cellString atIndex: row];

[table insertRowsAtIndexPaths: [NSArray arrayWithObject: [NSIndexPath indexPathForRow: row inSection: section]]
             withRowAnimation: UITableViewRowAnimationNone];

上述代码完成后调用:

[table performSelectorOnMainThread: @selector(endUpdates) withObject: nil waitUntilDone: YES];

调用 endUpdates 时发生错误。确切的错误消息是:

2012-01-04 14:28:10.951 myApp[2183:fb03] *** Assertion failure in -[UITableViewRowData rectForSection:], /SourceCache/UIKit_Sim/UIKit-1912.3/UITableViewRowData.m:1449
2012-01-04 14:28:10.953 myApp[2183:fb03] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'request for rect of invalid section (1)'
*** First throw call stack:
(0x1833052 0x1d94d0a 0x17dba78 0x11472db 0x99c832 0xa1b93b 0xa1b886 0xa1b451 0xa28134 0x8458e1 0x842602 0x84d211 0x84d23f 0x1834e72 0x10d69ef 0x180797f 0x176ab73 0x176a454 0x1769db4 0x1769ccb 0x33b6879 0x33b693e 0x7bea9b 0x1fad 0x1f25)
terminate called throwing an exception

这个错误是什么意思,我需要更改什么才能避免它?


看起来您的代码正在尝试使用表中不存在的部分。

由于 NSArray 是零索引的,因此索引值count将超出数组的范围。使用时应该从计数中减一indexSetWithIndex: here:

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

iOS 错误“请求无效部分的矩形”是什么意思? 的相关文章

随机推荐

  • 位置管理器是在调度队列上创建的

    这个消息是什么意思 注意 位置管理器 0xe86bdf0 是在主线程以外的线程上执行的调度队列上创建的 开发人员有责任确保在分配位置管理器对象的线程上运行运行循环 特别是 不支持在任意调度队列 未附加到主队列 中创建位置管理器 这将导致无法
  • 从用户选择的文本返回 HTML

    我有以下非常简单的 html 页面 This is span style background color black color white the span
  • Spark:将大 MySQL 表读入 DataFrame 失败

    我想提前告诉您 以下几个相关问题不能解决我的问题 Spark查询运行速度非常慢 将 mysql 表转换为数据集非常慢 Spark 不会加载大型 MySql 表 Spark MySQL 从数据库读取时出错 This one很接近 但堆栈跟踪不
  • 为什么 jQuery 的电子邮件验证正则表达式如此简单?

    We all know that a regex to validate emails properly would be quite complicated However jQuery s validation plugin has a
  • 使用 git post-receive 挂钩的边带解复用器中出现错误

    我已经使用 git 设置了一个 EC2 实例 并使用 post receive hook 将其部署到我的服务器本教程 这是我的控制台的输出 git push production master email protected s passw
  • 为什么我可以使用 Javascript 阻止 keydown 上的默认事件,但不能阻止 keyup 上的默认事件?

    使用时 keydown我可以捕获 keydown 事件 然后检查并防止默认操作 显示字符 使用时 keyup我不能 我知道该事件被捕获为alert 当代码处于条件内但仍触发时触发preventDefault 不会阻止该操作 这里有一个完整的
  • 按时间和 pandas 中的其他列分组

    我有一个大的 pandas 数据框 其中包含时间戳 名称和值列 index timestamp name value 0 1999 12 31 23 59 59 000107 A 16 1 1999 12 31 23 59 59 00038
  • 胶水爬虫排除模式

    我有一个 s3 存储桶 我正在尝试对其进行爬网和编目 格式是这样的 其中 SQL 文件是 DDL 查询 CREATE TABLE语句 匹配不同数据文件的模式 即data1 data2 etc s3 my bucket somedata 20
  • 将 Html 表导出到 Excel 并保留 css 样式

    我正在使用 Excel Web 查询将 html 表 MVC 视图 导出到 Excel 我如何让它携带CSS样式 如果我设置class redLabel 它不会解释这一点并使标签变为红色 我必须在表格中使用内联样式才能正常工作 有任何想法吗
  • swift 在 iPhone 上截图只有白色背景

    一些背景 我只是想在 swift 中使用 xcode 6 beta 7 做一个简单的程序 以便在按下按钮后对 iPhone 进行屏幕截图 它是在 SpiteKit 和游戏场景中完成的 背景是随机 png 图像和 hello world 默认
  • 使用“cpan”安装 Perl 模块时如何避免 sudo?

    我已将 Perl 从源代码安装到 usr local 中 并相应地调整了我的路径 如下布莱恩 福伊的建议在这里 我确信我遗漏了一些东西 但是 现在我尝试使用 cpan 命令安装东西 但它失败了 因为它无法写入 usr local 我必须使用
  • 对运算符+和/或运算符+=使用移动语义是否有意义?

    我想知道在重载运算符 和 或运算符 时 在什么情况下使用移动语义才有意义 尽管它被解释为这个问题我怎么能做到这一点 我无法理解为什么我要这样做 让我们考虑运算符 如果我只是通过引用传递右侧对象并对左侧对象进行适当的更改 则无论如何都不会产生
  • 在 python 中使用 .pyc 文件时是否有任何性能提升?

    我们可以编写一段python代码并将其放入已经编译好的 pyc 文件中并使用它 我想知道在性能方面是否有任何增益 或者它只是一种对代码进行分组的模块化方式 多谢 在您的计划过程中没有任何性能提升 它只会缩短启动时间 从 pyc 或 pyc
  • 如何从 T-Sql 中的日期时间中提取日期?

    我正在 SQL Server 2005 中针对日期时间列运行选择 我只能从此日期时间列中选择日期吗 最好的办法是 SELECT DATEADD day DATEDIFF Day 0 ADate 0 这是因为 SQL Server 在内部将所
  • 从字符串中查找并提取数字

    我需要查找并提取字符串中包含的数字 例如 从这些字符串 string test 1 test string test1 1 test string test2 test 99 我怎样才能做到这一点 d 是整数的正则表达式 所以 System
  • 如何在满足严格弱排序的n元组上定义operator<

    这个问题在这里已经有答案了 如何定义operator lt 在 n 元组上 例如在 3 元组上 使其满足严格弱序概念 我知道 boost 库有正确定义的元组类operator lt 但由于某些原因我无法使用它 严格弱序 这是一个数学术语 用
  • 记录后重新抛出 UncaughtExceptionHandler 异常

    在我的应用程序类中 我试图在发生之前捕获强制关闭 这样我就可以记录它 然后重新抛出它 以便 android 可以处理它 我这样做是因为有些用户没有报告强制关闭 我正在 eclipse 中开发 而 eclipse 不允许我重新抛出异常 它显示
  • 移动网站 - 在方向改变时重置视口

    我有一个宽度为 590 像素的移动页面 所以我这样设置视口 当我第一次以纵向或横向方式访问该页面时 它看起来不错 页面完全填充宽度 但是当我改变方向时 视口不会改变 当我从纵向转到横向时 视口比 590 像素更宽 反之亦然 仅在 Galax
  • Rails 4 相当于 Rails 3 'Model.all'

    在 Rails 3 中 如果我想访问数据库 我会在查询末尾使用 all 当我执行诸如在写入时刷新缓存 因此读取总是命中缓存 之类的操作时 这非常有用 现在在 Rails 4 中 Model all 返回一个ActiveRecord Rela
  • iOS 错误“请求无效部分的矩形”是什么意思?

    谷歌根本没有透露任何关于此错误消息的帖子 我在 iOS 5 中尝试更新 UITableView 时遇到了这个问题 虽然确切的代码有点复杂 但这就是我对表和包含表数据的 NSMutableArray 所做的事情 这些调用是通过 Perform