2010-12-14 4 views
5

Ich möchte meine Core Data-Entität in eine CSV-Datei exportieren können, um Anwendungsdaten zu speichern. Ich habe gegoogelt aber nichts gefunden.So exportieren Sie die Core Data-Entität in eine CSV-Datei

Meine App verwendet nur eine Entität mit fünf Attributen. Diese Attribute sind alle Zeichenfolgen außer einer, die eine Dezimalzahl (mit einem Komma oder einem Punkt) ist. Wie kann ich diese Entität mit allen Attributen exportieren?

+0

Gibt es jemanden mit anderen Lösungen? – matteodv

Antwort

7

Sie haben ein Verfahren zu schaffen, um diese Art von Operation zu tun, wie folgt aus:

NSString *separator = @", "; 
NSString *cvs = @""; 
for (NSObject *object in arrayOfObject) { 
     cvs = [NSString stringWithFormat:@"%@%@%@%@%@\n", cvs, [object att1], separator, [object att2], separator, [object att3]...]; 
} 
//If you want to store in a file the CVS 
[cvs writeToFile:pathToFile atomically:YES]; 

ich Ihnen vorschlagen, um zu versuchen, die „Anfügen“ System zu vermeiden, die ich verwende, ist diese Art von Betrieb erzeugen Lecks im Speicher. Statt einer string, die die gleiche var neu schreiben, verwenden diese Methode, die sehr gut geschrieben wurde: Shortcuts in Objective-C to concatenate NSStrings

Sie auch einen Blick auf diese Bibliothek nehmen: https://github.com/davedelong/CHCSVParser ich es nie benutzt, aber es sieht sehr hilfreich für CVS-Dateien schreiben/lesen.

+0

Danke für Ihre Antwort! Ich werde diese Methode versuchen und ich werde den verlinkten Parser sehen;) Eine Frage: Muss ich "ArrayOfObject" deklarieren? Ich benutze selten für Konstrukt und ich habe einige Antworten darüber :) – matteodv

+0

ja, das ArrayOfObject ist das Array von Objekten, die Sie von Core Data anfordern. – bontoJR

+0

Wie bekomme ich ein Array von Core Data? Ich verwende Attribute ohne ein Array, aber mit diesem Code ... Zum Beispiel ist der Name meiner Entität Entity, dann benutze ich Entity.attribute ... Ich verstehe wirklich nicht, wie ... :(Können Sie mir helfen, meine Ideen? Danke! – matteodv