2010-12-14 11 views
5

Mi piacerebbe poter esportare la mia entità Core Data in un file CSV, per salvare i dati dell'applicazione. Ho cercato su Google ma non ho trovato nulla.Come esportare l'entità Core Data in un file CSV

La mia app utilizza solo un'entità con cinque attributi. Questi attributi sono tutte le stringhe tranne una che è un numero decimale (con una virgola o un punto). Come posso esportare questa entità con tutti gli attributi?

+0

C'è qualcuno con altre soluzioni? – matteodv

risposta

7

È necessario creare un metodo per fare questo tipo di operazione, in questo modo:

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]; 

vi consiglio di cercare di evitare il sistema "aggiungendo" che sto usando, questo tipo di operazione genera perdite in memoria. Invece di uno stringWithFormat che riscrivere lo stesso var, utilizzare questo metodo che è stato scritto molto bene: Shortcuts in Objective-C to concatenate NSStrings

Si può anche dare un'occhiata a questa libreria: https://github.com/davedelong/CHCSVParser ho mai usato, ma sembra molto utile per scrivi/leggi i file CVS.

+0

Grazie per la tua risposta! Proverò questo metodo e vedrò il parser collegato;) Una domanda: devo dichiarare "arrayOfObject"? Uso raramente per la costruzione e ho alcune risposte a riguardo :) – matteodv

+0

sì, arrayOfObject è la matrice di oggetti richiesta da Core Data. – bontoJR

+0

Come posso ottenere un array da Core Data? Sto usando attributi senza un array ma con questo codice ... Per esempio il nome della mia entità è Entity, quindi uso Entity.attribute ... Non capisco davvero come ... :(Puoi aiutarmi a chiarire il mio idee! Grazie! – matteodv