5

Ich arbeite an einer App, die Core Data und NSFetchedResultsController verwendet. Das Modell Setup ist wie folgt:sectionNameKeyPath durch mehrere Beziehungen

/-----------\   /-----------\   /-----------\ 
|Part  |   |Kit  |   |Source  | 
|-----------|   |-----------|   |-----------| 
|name  |   |name  |   |name  | 
|dimensions |   |description|   |location | 
|...  |   |...  |   |...  | 
|-----------|   |-----------|   |-----------| 
|kits  | <<-\  |source  | <<-----1 |kits  | 
|   |  \->> |parts  |   |   | 
\-----------/   \-----------/   \-----------/ 

So ein Part hat eine many-to-any-Beziehung mit einem Kit (ein Teil kann in einem oder mehreren Kits sein, und ein Kit kann ein oder mehrere Teile enthalten) . Und jeder Kit kommt von einem Source, der einen oder mehrere Kit s zur Verfügung stellen kann.

Ich erstelle derzeit eine UITableView, die eine NSFetchedResultsController mit einer einfachen Auflistung aller Part Objekte verwendet. Ich möchte die Teile in Abschnitte unterteilen, wobei jeder Abschnitt der Name Source ist. D.h .:

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

Da ein Part kommen kann aus mehreren Source s, ist es möglich, dies mit einem NSFetchedResultsController zu tun, indem die sectionNameKeyPath verwenden, oder muss ich dies eine ganz andere Art und Weise zu tun?

Danke!

Antwort

0

Ich denke nicht, denn die NSFetchedResultsController wird nicht wissen, welche Kit zu verwenden, um Part s zu sortieren, da es eine viele-viele Beziehung ist.

Denken Sie an eine Strukturansicht oder sogar Objective-C-Vererbungsstruktur, wobei jeder untergeordnete Knoten genau ein Elternteil hat, aber selbst viele untergeordnete Knoten haben kann. Sie können den Baum leicht vom untergeordneten Knoten bis zum übergeordneten Knoten zurückholen. Aber wenn ein Kind viele Eltern haben könnte, würde es nicht wirklich wissen, welches Elternteil zu wählen ist, wenn es den "Baum" rekurviert (was mehr wie ein Graph ist).

Also in Ihrem Datenmodell, muss die Part s viele Kit s haben? Denn wenn man die viel Beziehung zwischen Kit und Part zu einem n-Beziehung ändern, wo ein Kit viele Part s haben, aber ein Part nur ein Kit haben, dann könnten Sie die sectionNameKeyPath auf NSFetchedResultsController-@"kit.source.name" gesetzt zu sortieren mit Namen, und alles würde gut funktionieren.

Natürlich weiß ich nicht genau, wie Ihre Anwendung funktioniert, wenn Sie wirklich brauchen eine viele-viele-Beziehung zwischen Kit und Part, aber wenn Sie das tun, dann würden Sie wahrscheinlich nicht in der Lage sein, eine NSFetchedResultsController zu verwenden, und hätte Source s implementieren Abrufen und Umsetzung der UITableViewDataSource Methoden selbst :(

Verwandte Themen