3

coredataとxcodeに複数/順次の新しい行をどのように挿入しますか?

-(void)LoadDB{
    CoreDataAppDelegate *appdelegate = [[UIApplication sharedApplication]delegate];
    context = [appdelegate  managedObjectContext];

    NSManagedObject *newPref;        
    newPref = [NSEntityDescription
           insertNewObjectForEntityForName:NSStringFromClass([Preference class])
           inManagedObjectContext:context];
    NSError *error;

    [newPref setValue: @"0" forKey:@"pid"];      
    [context save:&error];

    [newPref setValue: @"1" forKey:@"pid"];    
    [context save:&error];
}

上記のコードは、前のエントリを上書きします。次の行を挿入する正しい手順は何ですか?

4

1 に答える 1

7

コアデータ管理対象オブジェクトごとに新しい挿入ステートメントが必要です。それ以外の場合は、既存のMOのみを編集します。また、最後に1回だけ保存する必要があります。

-(void)LoadDB{
    CoreDataAppDelegate *appdelegate = [[UIApplication sharedApplication]delegate];
    context = [appdelegate  managedObjectContext];

    NSManagedObject *newPref;
    NSError *error;

    newPref = [NSEntityDescription
               insertNewObjectForEntityForName:NSStringFromClass([Preference class])
               inManagedObjectContext:context];
    [newPref setValue: @"0" forKey:@"pid"];    


    newPref = [NSEntityDescription
               insertNewObjectForEntityForName:NSStringFromClass([Preference class])
               inManagedObjectContext:context];
    [newPref setValue: @"1" forKey:@"pid"];    

    // only save once at the end.
    [context save:&error];
}
于 2013-01-04T20:29:04.047 に答える