2011-11-11 2 views
0

CoreDataに約400個のオブジェクトを挿入しようとしていますが、それは長くなります。約20-30秒間。それは普通ですか?多くの挿入に特別なケースが存在する可能性がありますか?多くのオブジェクトの挿入にコアデータを最適化する方法

- (MyObject*) insertNew 
{ 
    NSEntityDescription* entityDescr = [MyObject entityDescription]; 
    NSManagedObjectContext* ctx = [NSManagedObjectContext defaultContext]; 
    MyObject* obj = [[[MyObject alloc] initWithEntity:entityDescr 
     insertIntoManagedObjectContext:ctx] autorelease]; 
    obj.name = @"name"; 
    obj.Id = @"an ID"; 
    return obj; 
} 

オブジェクトはツリーのように互いに階層関係にあります。

+0

管理対象オブジェクトのコンテキストでsaveを400回呼び出すか(各オブジェクトの後にループ)、一度だけsaveを呼び出していますか? –

+0

あなたはあなたの挿入コードを投稿できますか?それは確かに遅いようです。 – kubi

+0

@ BP。すべての挿入後に一度 – esmirnov

答えて

0

は、コアデータを任意のインポートを行う前に、基本的な読み取りは、インポートが繰り返し行われるものです場合は特に、Core Data Programming Guide "Efficiently Importing Data".

それは潜在的にあなたの時間を大量に保存されますです。

0

初めてアプリケーションを実行するときにシードデータベースを使用して見たい場合は、開発中に低速読み込みを実行することができます。小さなコピー操作の問題です。

データベースが非常に大きく、領域に余裕がある場合は、必要以上にディスク領域を使用する可能性があるため(シードデータベースはドキュメントディレクトリにあります)、別のソリューションを探すことができます。

関連する問題