2012-01-22 46 views
1

我想将10个元素添加到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]; 
} 
+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循环,你应该可以看到10个项目加...

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

相关问题