gpt4 book ai didi

ios - 一对多关系 : not able to save

转载 作者:行者123 更新时间:2023-11-29 03:36:45 29 4
gpt4 key购买 nike

我正在尝试与我拥有的一些数据创建一对多关系。

我有一个Project和许多项目,我正在尝试设置 Controller 来保存它们,但这是我第一次使用一对多关系,我的头是关于爆炸。

这就是我的保存方法

- (void)writeProj:(NSArray *)recivedProData ItemsData:(NSArray *)itemsData  {
// WRITE TO CORE DATA
NSManagedObjectContext *context = [self managedObjectContext];

for (NSDictionary *dict in recivedProData) {
Project *project = [NSEntityDescription insertNewObjectForEntityForName:@"Project" inManagedObjectContext:self.managedObjectContext];

project.projectNumber = [dict valueForKey:@"ProjectNumber"];
project.projectDescription = [dict valueForKey:@"Description"];
// project.items = [dict valueForKey:@""]; // this is the relationship for project
}

for (NSDictionary *dict in itemsData) {
Items *items = [NSEntityDescription insertNewObjectForEntityForName:@"Items" inManagedObjectContext:self.managedObjectContext];

items.description = [dict valueForKey:@"Description"];
items.area = [dict valueForKey:@"Area"];
items.stage = [dict valueForKey:@"Stage"];
// items.project = [dict valueForKey:@""]; // this is the relationship for items
}

NSError *error = nil;

if (![__managedObjectContext save:&error]) {
NSLog(@"There was an error! %@", error);
}
else {
NSLog(@"created");
}

[Project addItemsObject:items];

[__managedObjectContext saveOnSuccess:^{

NSLog(@"You created a relationship");

} onFailure:^(NSError *error) {

NSLog(@"There was an error! %@", error);

}];
}

所以我有一个Project和许多Items,我只是不知道如何设置关键字段,以便它们作为一个项目和许多项目保存到核心数据中。

所以希望我的代码是有意义的。如果有人能帮助我弄清楚如何正确保存它,我将不胜感激。

最佳答案

只需将 items.project 设置为等于您刚刚创建的项目 NSManagedObject

items.project = project;

编辑:如果您只有一个项目,则应该将 Project* project 声明移到 recivedProData for 循环之外 - 您正在为每个字典创建一个项目,然后你说你只有一个项目。如果您只有一个项目,那么整个代码块就没有意义——为什么您有一组 Project 数据,而不仅仅是一个字典?

关于ios - 一对多关系 : not able to save,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19073254/

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