Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift n内部一致性异常';,原因:';获取500+;时无法在捆绑包中加载NIB;来自通讯簿数据库的记录_Swift_Sqlite_Uitableview_Cocoa Touch_Nib - Fatal编程技术网

Swift n内部一致性异常';,原因:';获取500+;时无法在捆绑包中加载NIB;来自通讯簿数据库的记录

Swift n内部一致性异常';,原因:';获取500+;时无法在捆绑包中加载NIB;来自通讯簿数据库的记录,swift,sqlite,uitableview,cocoa-touch,nib,Swift,Sqlite,Uitableview,Cocoa Touch,Nib,如果这个问题被重复,我很抱歉,但我无能为力,因为我已经尝试了所有可能的解决方案,但没有任何效果,因此我提出这个问题 我正在从通讯簿数据库一次性加载表视图中的近500条记录。如果记录很少,比如说50或100,那么我的表将毫无问题地显示出来。但是当记录的数量达到300+时,我得到一个崩溃,它说: ***由于未捕获的异常“NSInternalInconsistencyException”,正在终止应用程序,原因:“无法在中加载NIB。” bundle:'NSBundle (已加载)“名称为”Group

如果这个问题被重复,我很抱歉,但我无能为力,因为我已经尝试了所有可能的解决方案,但没有任何效果,因此我提出这个问题

我正在从通讯簿数据库一次性加载表视图中的近500条记录。如果记录很少,比如说50或100,那么我的表将毫无问题地显示出来。但是当记录的数量达到300+时,我得到一个崩溃,它说:

***由于未捕获的异常“NSInternalInconsistencyException”,正在终止应用程序,原因:“无法在中加载NIB。” bundle:'NSBundle (已加载)“名称为”GroupmemberCell“

我读过一些其他表单,它们有解决方案,比如在
构建阶段检查文件或检查iOS应用程序的包内容。我已经尝试了所有的方法,但没有任何效果。该文件在构建阶段存在,并且也被添加到我的应用程序文件的包内容中。我还删除了这些文件一次,也就是说,我完全删除了它们,并创建了一个新的UITableViewCell类,但随后也出现了崩溃

GroupmemberCell是我在表视图中添加的一个xib。下面是RowDataSource方法单元格的代码片段

static NSString *CellIdentifier = @"Cell"; GroupmemberCell *cell = (GroupmemberCell*) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];; if (cell == nil) { NSArray *cellxibfilepath = [[NSBundle mainBundle]loadNibNamed:@"GroupmemberCell" owner:self options:nil]; if (cellxibfilepath) { for(id cellObjects in cellxibfilepath) { if ([cellObjects isKindOfClass:[UITableViewCell class]]) { cell = (GroupmemberCell*)cellObjects; } } } } 静态NSString*CellIdentifier=@“Cell”; GroupmemberCell*单元格=(GroupmemberCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];; 如果(单元格==nil) { NSArray*cellxibfilepath=[[NSBundle mainBundle]loadNibNamed:@“GroupmemberCell”所有者:自选项:nil]; if(文件路径) { for(cellxibfilepath中的id CellObject) { if([cellObjects是类的种类:[UITableViewCell类]]) { cell=(GroupmemberCell*)cellObjects; } } } } 这里可能有什么问题,比如相同的代码对100个记录集起作用而没有任何崩溃,但是如果我获取一组500多个记录并将它们显示在表中,就会出现崩溃

if (tableReloadArray.count!=0) { [objtable reloadData]; } 为了获取我没有在后台打电话的记录,我尝试过一次,但也没有解决崩溃问题

我的想法是:我认为我一次加载了大量数据,这可能会给UI创建的主线程带来一些问题,因为我确实在数组中获取了数据,我检查了它们,然后只给出了重新加载表的命令

if (tableReloadArray.count!=0) { [objtable reloadData]; } if(tableReloadArray.count!=0){ [objtable reloadData]; }
我在许多应用程序中看到,它们以闪电般的速度加载1000多个数据——它们是如何做到的?他们的方法是什么,或者我缺少什么最佳实践,请指导我。

在进行了大量的头脑风暴会议和喝了大量咖啡后,我使用“分析工具”清除了所有内存警告,然后使用“仪器工具”查看是否有泄漏也清除了它们。删除了派生数据并清理了应用程序,我就完成了

“分析工具”在整个应用程序中提出了大约67个问题,“仪器工具”显示了超过3-4个问题

我知道这听起来很愚蠢,但我这样做解决了我的车祸。希望这能帮助那些陷入同样问题的人