新しいコア データ オブジェクトを作成し、ビューのサブビューの情報を入力しようとしています。(配列を template_control オブジェクトで埋めるためだけに)
どうしたの?オブジェクトは保存できませんが、後で を実際に保存するmanagedobjectcontect
と、オブジェクトが保存されます。
私は何を試しましたか?managedobjectcontext
保存しない新しいを作成しましたsavemanagedobjectcontext
が、通常のを実行すると、コントロールは保存されますmanagedobjectcontext
。
これに対する解決策を持っている人はいますか?
前もって感謝します。
Template_Control * temp_control = [NSEntityDescription
insertNewObjectForEntityForName:@"Template_Control"
inManagedObjectContext:self.tmpManagedObjectContext];
for(UIView *view in self.view.subviews){
if(![view isEqual:self.templateEditView.leftSideView]){
NSLog(@"DE TAG VAN DE view is %i",view.tag);
temp_control.height = [NSNumber numberWithFloat:view.bounds.size.height];
temp_control.width = [NSNumber numberWithFloat:view.bounds.size.width];
[temp_control setX:[NSNumber numberWithFloat:view.frame.origin.x]];
[temp_control setY:[NSNumber numberWithFloat:view.frame.origin.y]];
NSLog(@"%i",view.tag);
[temp_control setControl:[self getControlForTemplateControl:view.tag]];
[self.controlsOnTemplate addObject:temp_control];
}
}
NSLog(@"aantal controls: op de template %i", [self.controlsOnTemplate count]);
temp_control = nil;
これは私のテーブルの画像です
少しわかりやすくするために、通常の managedobjectcontext を保存するコードを次に示します。
-(void)saveNewTemplateControls{
NSError *error;
//template voor de contorl ophalen
NSFetchRequest *request = [[NSFetchRequest alloc]init];
[request setEntity:[NSEntityDescription entityForName:@"Template" inManagedObjectContext:self.managedObjectContext]];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == %@",self.template.name];
[request setPredicate:predicate];
NSArray *results = [self.managedObjectContext executeFetchRequest:request error:&error];
NSEntityDescription *entitydescTemplateControl = [NSEntityDescription entityForName:@"Template_Control"
inManagedObjectContext:self.managedObjectContext];
for(Template_Control *template_control in self.theNewControls){
NSManagedObject *newtemplatecontrol = [[NSManagedObject alloc]initWithEntity:entitydescTemplateControl
insertIntoManagedObjectContext:self.managedObjectContext];
[newtemplatecontrol setValue:template_control.width forKey:@"width"];
[newtemplatecontrol setValue:template_control.height forKey:@"height"];
[newtemplatecontrol setValue:template_control.x forKey:@"x"];
[newtemplatecontrol setValue:template_control.y forKey:@"y"];
[newtemplatecontrol setValue:[results objectAtIndex:0] forKey:@"template"];
[newtemplatecontrol setValue:template_control.control forKey:@"control"];
[self.managedObjectContext save:&error];
}
}