2010-12-14 37 views
5

我希望能夠將我的Core Data實體導出爲CSV文件,以保存應用程序的數據。我google搜索,但沒有發現。如何將Core Data實體導出爲CSV文件

我的應用程序只使用一個具有五個屬性的實體。這些屬性都是字符串,除了一個十進制數字(用逗號或點)。我怎樣才能將這個實體導出所有的屬性?

+0

有人有其他解決方案嗎? – matteodv 2010-12-17 21:08:45

回答

7

你必須創建一個方法做這樣的操作,像這樣:

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

我建議你儘量避免,我使用了「追加」系統,這種操作產生內存泄漏。 而不是重寫同一變種一個stringWithFormat的,使用此方法已被寫得很好: Shortcuts in Objective-C to concatenate NSStrings

您也可以看看這個庫:https://github.com/davedelong/CHCSVParser 我從來沒有使用過它,但它看起來非常有幫助寫入/讀取CVS文件。

+0

感謝您的回答!我會嘗試這種方法,我會看到鏈接的解析器;)一個問題:我必須聲明「arrayOfObject」?我很少用於構造,我已經得到了一些答案:) – matteodv 2010-12-14 15:57:11

+0

是的,arrayOfObject是你從核心數據請求的對象的數組。 – bontoJR 2010-12-14 16:01:12

+0

如何從核心數據獲取數組?我使用的屬性沒有數組,但與此代碼...例如,我的實體的名稱是實體,然後我使用Entity.attribute ...我真的不明白如何...... :(你能幫我澄清我的想法呢?謝謝! – matteodv 2010-12-14 16:13:34