2012-01-22 47 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次

相關問題