Iphone 通过多个关系的sectionNameKeyPath

Iphone 通过多个关系的sectionNameKeyPath,iphone,cocoa-touch,core-data,ios,nsfetchedresultscontroller,Iphone,Cocoa Touch,Core Data,Ios,Nsfetchedresultscontroller,我正在开发一款使用核心数据和NSFetchedResultsController的应用程序。模型设置如下所示: /-----------\ /-----------\ /-----------\ |Part | |Kit | |Source | |-----------| |-----------| |-----------| |name |

我正在开发一款使用核心数据和
NSFetchedResultsController
的应用程序。模型设置如下所示:

/-----------\          /-----------\          /-----------\
|Part       |          |Kit        |          |Source     |
|-----------|          |-----------|          |-----------|
|name       |          |name       |          |name       |
|dimensions |          |description|          |location   |
|...        |          |...        |          |...        |
|-----------|          |-----------|          |-----------|
|kits       | <<-\     |source     | <<-----1 |kits       |
|           |     \->> |parts      |          |           |
\-----------/          \-----------/          \-----------/
由于
部分
可能来自多个
s,是否可以使用sectionNameKeyPath使用NSFetchedResultsController执行此操作,或者我必须以完全不同的方式执行此操作


谢谢

我不这么认为,因为
NSFetchedResultsController
不知道使用哪个
Kit
零件进行排序,因为这是一个多关系

想想树视图,甚至Objective-C继承结构,其中每个子节点只有一个父节点,但它本身可以有许多子节点。您可以轻松地将树从子节点向上递归到其父节点。但是,如果一个孩子可能有许多父母,那么在递归“树”(现在更像是一个图形)时,它本质上不知道选择哪一个父母

那么,在您的数据模型中,
部分
s是否必须有许多
套件
s?因为如果将
Kit
Part
之间的多对多关系更改为多对多关系,其中
Kit
可以有多个
Part
s,但
Part
只能有一个Kit,则可以将
nsfetchedresultscocontroller
上的
sectionNameKeyPath
设置为
@“kit.source.name”
按名称排序,一切正常


当然,我不知道你的应用程序是如何工作的,如果你真的需要
Kit
Part
之间有很多关系,但是如果你需要,那么你可能无法使用
NSFetchedResultsController
,并且必须实现fetching
源代码
UITableViewDataSource
方法:(

对于多对多关系,您可以使用NSFetchedResultsController获得此结果

请参阅以下答案:如何使用NSFetchedResultsController处理多对多关系

和示例项目:

|-------------------------------|
|Source One                     |
|-------------------------------|
|Part One                       |
|Part Two                       |
|Part Three                     |
|-------------------------------|
|Source Two                     |
|-------------------------------|
|Part Four                      |
|Part Two                       |
|Part Five                      |
|....                           |
|-------------------------------|
|             O                 |
|-------------------------------|