我有一个从* .xml文件导入信息的CoreData应用程序。该文件有两个部分,摘要和详细信息。CoreData NSArrayController addObject:Agonizingly Slow
实质上,我有两个表视图,tvSummary和tvDetail;两个阵列控制器,acSummary和acDetail;和一个可变数组maDetail。
当我导入文件时,我使用[acSummary addObject:newSummaryData];
方法将汇总数据记录添加到acSummary数组控制器。一旦文件被导入,汇总数据字段将填充tvSummary表视图。
当我使用[acDetail addObject:newDetailData];
方法将详细数据记录添加到acDetail阵列控制器时,导入多达72000条记录(大多数文件包含3600到21600条记录)可能需要20分钟以上的时间。一旦这个冗长的过程完成,导入的详细数据字段将填充tvDetail表视图。当我在tvSummary表格视图中进行选择时,显示在tvDetail表格视图中的数据会更改为与所选行相匹配。我认为这是它应该如何工作的。在Cocoa/Objective-C/Core数据学习过程中(我仍然是新手),我发现我可以在大约五秒内将72000条记录复制到maDetail可变数组中。我还发现我可以使用[acDetail setContent:maDetail];
方法在大约两秒内将maDetail可变数组的内容复制到acDetail阵列控制器。
我不明白的是如何让acDetail数组控制器记住它在tvSummary表视图中选择不同的行时给出的内容。我看到引用强制数组控制器'保存',但是,我找不到有关如何实现这种方法的任何文档。任何意见或方向将不胜感激。
谢谢你,让我以不同的方式思考问题,解决方案非常简单。我改变了ObjectDetailData * newDetailData = [[ObjectDetailData alloc] init]; ObjectDetailData * newDetailData = [controllerDetailDataArray newObject];它的作品就像[contollerDetailDataArray addObjects:newDetailData]的魅力; ...雅虎! – SBeckett