- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序有一个 UITableViewController,它在附加行后收到“无效更新:第 0 节中无效的行数...”。事情是,它只发生在 %0.2 的 session 中。我们的应用程序有数百万个 session ,因此崩溃次数不断增加。
流程很简单。这是将用户的音乐与我们的视频目录相匹配的功能的一部分。后台线程发出一系列请求。请求发出,响应返回结果,然后这些结果被附加到我们的一个选项卡中的 tableView。请求分批进行,并且可以添加到很多结果行。因此,我不想在一批进来后调用 reloadData,而是想正确地附加它们。工作很棒,但偶尔会崩溃。
我能够在设备上重现一次。它从未在模拟器上发生过。据我所知,崩溃是相当随机的,尽管它主要发生在 3gs 上。最少的崩溃次数来自 4s。
这是代码。回应回来了。在这种情况下,allMatches 是到目前为止的每个匹配项(表的数据源)。 batchMatches 是新艺术家的数量。都是数组:
[self.tableView beginUpdates];
NSMutableArray *paths = [[NSMutableArray alloc] init];
for (int i = [allMatches count] - [batchMatches count]; i < [allMatches count]; ++i) {
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:i inSection:0];
[paths addObject: indexPath];
}
[self.tableView insertRowsAtIndexPaths:paths withRowAnimation:NO];
[self.tableView endUpdates];
[paths release];
代码非常简单。它只是将行附加到末尾,每个结果一个。从不删除。完整异常消息的示例是“无效更新:第 0 节中的无效行数。更新后现有节中包含的行数 (131) 必须等于更新前该节中包含的行数 ( 131),加上或减去从该部分插入或删除的行数(插入 20 行,删除 0 行),加上或减去移入或移出该部分的行数(移入 0 行,移出 0 行)。”实际崩溃报告中到处都是数字,因此它不是特定的批号。
正如我所说,它几乎总是有效。它通常在 3GS 上崩溃。我想知道这是否可能是框架错误。我总是可以在每次批处理返回后调用 reloadData,但每次都会导致表格单元格闪烁难看。我是故意触发异常的,似乎之后表就死了,所以我无法使用 reloadData 作为 catch block 中的回退执行 try/catch。
任何人都可以阐明一些吗?对这篇文章的长度表示歉意。
编辑:服务器请求是使用 NSOperationQueue 完成的,因此它们在后台线程上。当响应返回时,我在主线程上发布通知,这会导致表代码运行。通知是这样发布的:
NSNotification *notification = [NSNotification notificationWithName:notificationName object:self];
[self performSelectorOnMainThread:@selector(postNotification:) withObject:notification waitUntilDone:NO];
发布通知只是 [[NSNotificationCenter defaultCenter] postNotification:notification] 的包装器。所以表格代码应该在主线程。
最佳答案
我的猜测是,您正在后台线程中执行 TableView 更新。您应该在主线程上执行此操作。
将您的代码放在 dispatch_async block 中。
dispatch_async(dispatch_get_main_queue(), ^(void) {
// ..
});
关于iphone - UITableView 在追加行时偶尔崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9673022/
我有 4 个 TextView。它们一开始都是不可见的,我将它们动画到屏幕上(从底部滑入)。我启动一个线程来为每个动画制作动画,每个动画开始时间间隔 200 毫秒。问题是:开始 Activity 后第
我有一个奇怪的问题,我似乎无法解决。 :(我有一个基于 Web 的应用程序,可以发送电子邮件。它通过连接在本地网络上设置的基于 Windows 的 SMTP 服务器来实现。此 SMTP 服务器不需要我
从昨天开始,我一直遇到一些设备收不到推送通知的问题。证书/设备 token 似乎是正确的,因为直到昨天,该设备还可以成功接收推送通知。 在服务器端,没有错误或连接拒绝,而且推送通知似乎每次都发送成功。
我有一个将 Angular 错误记录到数据库的应用程序,并且我偶尔会看到此错误的日志 Error: [$compile:tpload] http://errors.angularjs.org/1.5.
我收到一个 ImportError from azure.storage.blob import BlobServiceClient 但是我意识到当我安装依赖项时会发生错误 pip install a
我已经完成了使用AVAudioPlayer实现的简单音频播放GUI。 播放声音时,我使用UISlider提供播放反馈... 这是奇怪的地方。 我有一个非常偶尔发生的问题-而且大多数情况都不会发生,因此
在我的 XNA 游戏中,我的计算机(2.5 Ghz 双核 Intel Centrino 2)在 Debug模式下有一个大约需要 10 毫秒的操作。它只会每隔几分钟运行一次,它基本上只是整数数学/按位运
我相信我的应用程序编码正确(至少大部分是这样),因为它在大约 98% 的时间里都能正常工作。但是,大约 2% 的时间,我得到的似乎是有效的身份验证 token ,但是当我去发布照片时,我收到以下错误“
我在 apple store 上有一个应用程序,在 iOS6 更新后,我在 MKMapView 中收到了数百份崩溃报告。我无法在我的设备上重现崩溃。它看起来像是 EAGLContext 的问题。我们不
我最近开始使用 Foundation 5(我第一次使用 Foundation),我遇到了一个问题,似乎任何元素都响应了 .click 事件(例如顶部导航栏,单击元素时显示的数据下拉列表)将随机不起作用
花了大约一整天的时间试图解决这个问题,希望有人能帮助我!我是新来的,所以如果这是一个重复的问题,我深表歉意(我做了我的研究,但无法提前找到任何东西)。 我正在为我的咨询公司构建的网站使用浏览器缓存,但
我有一个表格,使用了以下 CSS 和 HTML: .price { position:relative; display:block; text-align:center; }
我们使用 ansible 将多个节点配置为一个集群。这些机器是在自定义 AWS 类似基础设施上创建的实例。 我们在不同的剧本上有大约一百个任务,它们在每个节点上执行。 问题是,我们收到零星的主机无法访
我们偶尔会从用户那里收到崩溃报告(我们使用崩溃报告程序包将崩溃发送到我们的服务器),并出现以下错误: “非法尝试在不同上下文中的对象之间建立关系‘...’” (不同的报表可能有不同的关系,并非所有报表
我是一名优秀的程序员,十分优秀!