如何向Core Data添加10个元素?

时间:2012-01-22 14:23:38

标签: ios core-data nsmanagedobject

我想在Core Data商店中添加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];
}

2 个答案:

答案 0 :(得分: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 :(得分:1)

如果你在for循环中移动你的第二行代码,你会看到添加了10个项目......

-initWithEntity:insertIntoManagedObjectContext:方法创建一个新的托管对象并将其插入managedObjectContext。在您的代码中,您要插入一个元素,并对其进行10次编辑