gpt4 book ai didi

ios - 如何不保存 managedobjectcontext

转载 作者:行者123 更新时间:2023-11-29 11:01:31 25 4
gpt4 key购买 nike

我正在尝试创建一个新的核心数据对象,并用某个 View 的 subview 的一些信息填充它。 (只是为了用 template_control 对象填充数组)

有什么问题?该对象无法保存,但稍后当我对 managedobjectcontect 进行真正的保存时,该对象被保存了。

我尝试了什么?我创建了一个新的 managedobjectcontext,我没有保存它,但是当我在普通的 managedobjectcontext 上执行 savemanagedobjectcontext 时,控件仍然保存。

有人对此有解决方案吗?

提前致谢。

   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;

这是我的 table 的图片

enter image description here

为了更清楚一点,这里是我保存普通 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];
}

最佳答案

在您保存托管对象上下文之前,您的对象不会写入(或“保存”)到支持核心数据的 sqlite 数据库中。在调用保存之前,不要检查数据库。

关于ios - 如何不保存 managedobjectcontext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15699841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com