如果这个问题被重复,我很抱歉,但我无能为力,因为我已经尝试了所有可能的解决方案,但没有任何效果,因此我问这个问题。
我一次从通讯簿数据库中的表格视图中加载了近 500 条记录。如果记录很少,比如 50 或 100,我的表显示没有任何问题。但是当记录数超过 300 条时,我遇到了一个崩溃,上面写着:
*** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无法在包中加载 NIB:“NSBundle(已加载)”,名称为“GroupmemberCell”
我已经阅读了其他一些具有解决方案的表格,例如签入Build Phase
文件或签入 iOS 应用程序的包内容。我已经尝试了一切,但没有任何效果该文件存在于构建阶段,并且还被添加到我的应用程序文件的包内容中。我也曾经删除过这些文件,即我完全删除了它们并创建了一个新的 UITableViewCell 类,但随后也出现了崩溃。
GroupmemberCell 是我在表格视图中添加的 xib。下面是来自行数据源方法的单元格的代码片段。
静态 NSString *CellIdentifier = @"Cell"; GroupmemberCell *cell = (GroupmemberCell*) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];; 如果(单元格 == 零) { NSArray *cellxibfilepath = [[NSBundle mainBundle]loadNibNamed:@"GroupmemberCell" owner:self options:nil]; if (cellxibfilepath) { for(id cellObjects in cellxibfilepath) { if ([cellObjects isKindOfClass:[UITableViewCell 类]]) { 单元格 = (GroupmemberCell*)cellObjects; } } } }
这里可能有什么问题,就像相同的代码适用于 100 条记录集而没有任何崩溃,但如果我获取一组 500 多条记录并将它们显示在表中,则会导致崩溃。
为了获取我没有在后台拨打任何电话的记录,我尝试过一次,但崩溃也没有解决。
我的想法:我想我一次加载大量数据,这可能会给 UI 创建的主线程带来一些问题,因为我确实在我的数组中获取数据并检查它们,然后只有我发出命令重新加载表.
如果(tableReloadArray.count!=0){ [objtable reloadData]; }
我在许多应用程序中看到他们以闪电般的速度加载 1000+ 数据 - 他们是如何做到的?他们的方法是什么,或者我缺少什么最佳实践,请指导我。