Hallo.
Ich habe ein kleines Framework geschrieben, welches es ermöglicht managed Objects einer Core Data Anwendung in eine XML Datei zu exportieren bzw. zu importieren. Da ich noch recht neu in Objective-C bin ist sicherlich noch vieles verbesserungswürdig. Einige Dinge sind mir schon selbst aufgefallen (convenient allocators schreiben, wichtige dinge gleich im vom init setzen lassen).
Das Exportieren funktioniert wie folgt:
Alles anzeigen
Das Importieren geht wie folgt:
Alles anzeigen
Man kann natürlich auch den Importierten objekten gleich noch eine relationship mitgeben - oder einfach noch andere eigenschaften für alle objekte ändern...
Alles anzeigen
Hier wird eine neue Stadt erzeugt und die importierten personen ihr gleich zugewiesen...
Framework (Source) downloaden
Dokumentation zum Exportieren
Dokumentation zum Importieren
Mich würde vorallem interessieren, ob sowas sinnig ist und wie es euch gefällt.
Ich habe ein kleines Framework geschrieben, welches es ermöglicht managed Objects einer Core Data Anwendung in eine XML Datei zu exportieren bzw. zu importieren. Da ich noch recht neu in Objective-C bin ist sicherlich noch vieles verbesserungswürdig. Einige Dinge sind mir schon selbst aufgefallen (convenient allocators schreiben, wichtige dinge gleich im vom init setzen lassen).
Das Exportieren funktioniert wie folgt:
Quellcode
- #import <CDXML/CDXML.h>
- ManagedObjectsExporter *exporter = [[[ManagedObjectsExporter alloc] init] autorelease];
- [exporter setManagedObjects:[yourArrayController arrangedObjects]];
- [exporter setPath:@"/Path/to/file.xml"];
- if([exporter exportManagedObjects] == YES)
- {
- NSLog(@"success");
- }
- else
- {
- NSLog(@"failed");
- }
Das Importieren geht wie folgt:
Quellcode
- #import <CDXML/CDXML.h>
- ManagedObjectsImporter *importer = [[[ManagedObjectsImporter alloc] init] autorelease];
- [importer setPath:@"/Path/to/file.xml"];
- [importer setEntityName:@"YourEntity"];
- if([importer importManagedObjects] == YES)
- {
- NSLog(@"Everything went fine.");
- }
- else
- {
- NSLog(@"There was an error.");
- }
Man kann natürlich auch den Importierten objekten gleich noch eine relationship mitgeben - oder einfach noch andere eigenschaften für alle objekte ändern...
Quellcode
- ManagedObjectsImporter *importer = [[[ManagedObjectsImporter alloc] init] autorelease];
- [importer setPath:@"/Path/to/file.xml"];
- [importer setEntityName:@"Person"];
- NSEntityDescription *cityEntity = [NSEntityDescription entityForName:@"City" inManagedObjectContext:context];
- NSManagedObject *newCity = [[NSManagedObject alloc] initWithEntity: cityEntity insertIntoManagedObjectContext:context];
- [newCity setValue:@"New City" forKey:@"name"];
- NSMutableDictionary *relationships = [NSMutableDictionary dictionary];
- [relationships setObject:newCity forKey:@"city"];
- [importer setProperties:relationships];
- if([importer importManagedObjects] == YES)
- {
- NSLog(@"Everything went fine.");
- }
- else
- {
- NSLog(@"There was an error.");
- }
Hier wird eine neue Stadt erzeugt und die importierten personen ihr gleich zugewiesen...
Framework (Source) downloaden
Dokumentation zum Exportieren
Dokumentation zum Importieren
Mich würde vorallem interessieren, ob sowas sinnig ist und wie es euch gefällt.
Die Objective-Cloud ist fertig wenn sie fertig ist. Beta heißt Beta.
Objective-C und Cocoa Band 2: Fortgeschrittene
Cocoa/Objective-C Seminare von [co coa:ding].
Objective-C und Cocoa Band 2: Fortgeschrittene
Cocoa/Objective-C Seminare von [co coa:ding].
