2012-01-22 4 views
1

コアデータストアに10個の要素を追加します。コアデータに10要素を追加するにはどうすればよいですか?

最後の要素だけが追加されるという問題があります。

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Test" inManagedObjectContext:[self managedObjectContext]]; 
Test *test = [[[Test alloc] initWithEntity:entity insertIntoManagedObjectContext:[self managedObjectContext]] autorelease];   

for (int i =0; i<10; i++) 
{ 
    test.text = @"Text"; 
    test.index = [NSNumber numberWithInt:i]; 
    [self saveContext]; 
} 
+0

私は同じミスを犯しました – ToddB

答えて

4

あなたは、ないその前にループの内部コンテキストtestを挿入する必要があります。

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Test" inManagedObjectContext:[self managedObjectContext]]; 
for (int i = 0; i < 10; i++) { 
    Test *test = [[[Test alloc] initWithEntity:entity insertIntoManagedObjectContext:[self managedObjectContext]] autorelease]; 
    test.text = @"Text"; 
    test.index = [NSNumber numberWithInt:i]; 
    [self saveContext]; 
} 

また、私はパフォーマンス上の理由から、ループの外でコンテキストを保存します。毎回ではなく、一度保存するだけで済みます。

1

あなたがforループ内のコードの2番目の行を移動する場合は、追加した10の項目が表示されるはずです...

-initWithEntity:insertIntoManagedObjectContext:方法は、新しい管理対象オブジェクトを作成し、managedObjectContextに挿入します。あなたのコードでは、1つの要素を挿入し、それを10回編集しています

関連する問題