Es gibt viele Themen zu Kerndaten Baumstrukturen, aber ich bin mit einigen Fragen übrig.Core Data Directory (Struktur) Struktur
Was ich versuche zu erstellen ist eine einfache Verzeichnisstruktur. (. Ordner mit Unterordnern mit Unterordnern, ... und später auch Dateien)
Ich habe jetzt diese Einheit Folder:
Und ich bin Hinzufügen von Ordnern wie folgt aus: [Offensichtlich ist diese Dummy-Daten und dies wird dynamicly später eingefügt]
// root 1
Folder *root1 = [NSEntityDescription insertNewObjectForEntityForName:@"Folder" inManagedObjectContext:context];
root1.name = @"Root 1";
root1.parent = nil;
// folder 1 in root 1
Folder *subFolder1 = [NSEntityDescription insertNewObjectForEntityForName:@"Folder" inManagedObjectContext:context];
subFolder1.name = @"Folder 1 in root 1";
subFolder1.parent = root1;
root1.children = [NSSet setWithObjects: subFolder1, nil];
Jetzt will ich für jeden Ordner einen Viewcontroller machen und öffnen Sie dann einen neuen Viewcontroller für jeden Unterordner. (Oder eine unendliche UITabelView)
Wenn ich Schleife in der Ordner-Einheit mit diesem Code:
NSArray *folders = [context executeFetchRequest:fetchRequest error:&error];
for(Folder *folder in folders){
NSLog(@"Profile: %@", folder.name);
}
ich alle Ordner auf einmal.
Die Frage ist also: Wie kann ich das in einer Baumstruktur abmelden? So kann ich zuerst einen ViewController für alle Stammordner erstellen und dann für jeden Unterordner einen anderen ViewController etc. etc ... (Mit anderen Worten: Wie kann ich diese Entity lesen, wie ich es in ein UITabelView schreiben würde)
Verwenden Sie einen abgerufenen Ergebnis-Controller, sparen Sie viel Ärger. In Ihrem ViewController erstellen Sie ein ivar für den übergeordneten Ordner, setzen Sie dies für den ersten viewController (oberste Ebene) auf nil. Wenn Sie einen Ordner in der Tabellenansicht auswählen, erstellen Sie eine weitere Instanz von viewController, und setzen Sie das zugehörige ivar auf das ausgewählte Element (übergeordnetes Element) und schieben Sie es auf den Stapel. Verwenden Sie das Prädikat wie von Tom unten beschrieben. Wenn Sie ein Array wie Sie verwenden, werden Bearbeitungen nicht automatisch in Ihren UITableViews angezeigt. Sehen Sie sich das Video an, um eine App mit derselben Ordner-/Dokumentstruktur anzuzeigen, die Core Data verwendet. –
Unterstützt Drag & Drop usw.Sie werden keine Details darüber finden, wie diese Hierarchie von Ordnern und Dokumenten auf der Site implementiert ist, aber ich kann einige Details hinzufügen, wenn Interesse besteht. http://ossh.com.au/design-and-technology/software-development/uimanageddocument-icloud-integration/os-x-and-ios-app-integration-with-core-data-and-icloud/ –
Wirklich hilfreich, danke! – Lapidus