我有一个一对多的 CoreData 模型。有任务列表和属于任务列表的任务。我的问题是,每当我创建一个新任务时,也会创建一个任务列表。
“新任务列表”是数据库中名称字段的默认值。“新任务列表”是视图在创建新任务时存储的值。可以看出,每次创建任务时,都会自动创建一个默认名称值的任务列表。
问题 这是它应该看起来的样子吗?如果是这样,我如何进行查询以仅选择 Z_ENT = 1 的任务列表名称(那些是父母,对吗?)如果这看起来非常错误,我该如何正确插入内容。我认为我的表关系是正确的 - 但如果这可能是问题,我会发布截图。
模型图
我的代码
选择列表时:
NSManagedObject *managedObject = [self.fetchedResultsController objectAtIndexPath:indexPath];
TaskViewController *taskViewController = [[TaskViewController alloc] init];
taskViewController.managedObjectContext = [self.fetchedResultsController managedObjectContext];
taskViewController.tasklist = managedObject;
在 TaskViewController 中,我得到这样的 fetchedResultsController:
NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"(tasklistOfTask == %@)", tasklist];
[fetchRequest setPredicate: predicate];
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:@"Root"];
aFetchedResultsController.delegate = self;
self.fetchedResultsController = aFetchedResultsController;
然后插入,
NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
NSEntityDescription *entity = [[self.fetchedResultsController fetchRequest] entity];
NSManagedObject *newManagedObject = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];
[newManagedObject setValue:@"dummy" forKey:@"task"];
[newManagedObject setValue:tasklist forKey:@"tasklistOfTask"];
managedobjectcontext 是从 AppDelegate 传入的。