我在使用 Core Data 时遇到问题。
在我的核心数据模型中,我有Grove
Entity 和Entity,在andTree
之间具有一对多的关系,在Grove
and之间Tree
具有一对一的关系
(每棵树可能在一个最大的树林中)。Tree
Grove
但有些Tree
可能是“狂野的”,而不是任何Grove
.
我正在尝试使用 fetResultController 在表格视图中显示我的所有树。每个 Grove 都是 table view 的一部分,“wild”树必须在一个单独的部分中。
我的代码是这样的:
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Tree" inManagedObjectContext:context];
[fetchRequest setEntity:entity];
// Edit the sort key as appropriate.
NSSortDescriptor *sectionSortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Grove.name" ascending:YES];
NSSortDescriptor *rowSortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"type" ascending:YES];
NSArray *sortDescriptors = @[sectionSortDescriptor, rowSortDescriptor];
[fetchRequest setSortDescriptors:sortDescriptors];
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:context sectionNameKeyPath:@"Grove.name" cacheName:nil];
如您所见,我正在获取所有树。用于确定部分的第一个排序描述符基于从树到树的一对一关系,并查找树的名称。第二个排序描述符用于对给定部分内的树进行排序,并按类型对它们进行排序。
当树木定义了树林时,此代码绝对可以正常工作。但是这个请求没有获取 grove=nil 的树。你知道实现想要的行为的方法吗?我必须为野树创造一个假树林吗?