6

Core Data ではまだ新人です。

配列を 3 回ループしようとしていますが、各ループでインデックス番号を保存しています。

ただし、結果をフェッチするときに最後のインデックス番号のみが表示されます。以前に挿入されたものすべてをオーバーライドしています。

私のコードは AppDelegate に書かれています。

これが私のコードです:

NSManagedObjectContext *context = [self managedObjectContext];
NSManagedObject *tagsDB = [NSEntityDescription insertNewObjectForEntityForName:@"Tags" inManagedObjectContext:context];

for (int i = 0 ; i < 3 ; i++)
{
   [tagsDB setValue:i forKey:@"ID"];

}

[self saveContext];

...

- (void)saveContext
{
    NSError *error = nil;
    NSManagedObjectContext *managedObjectContext = self.managedObjectContext;
    if (managedObjectContext != nil) {
        if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error]) {
            // Replace this implementation with code to handle the error appropriately.
            // abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
            NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
            abort();
        }
    }
}
4

2 に答える 2

1

for ループでは、繰り返されるコードは、新しく挿入されたアイテムの値を変更するだけです。for ループで行う必要があるのはinsertNewObjectForEntityForName、反復ごとに新しい個別のエンティティを挿入することです。

于 2013-07-26T14:52:22.780 に答える