我有一個從* .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