我正在弄一個非常簡單的應用程序,它可以讀取指定文件中的數據並將提取的數據填充到NSTableView
。該文件是一個純文本文件,每行代表一個對象(我需要解析該文件)。我想使用核心數據,我的問題是可可方式做什麼?可可核心數據和純文本文件
我的第一個想法是解析文件併爲表示一行的實體創建實例。我不確定這是最好的解決方案。後來我會寫出文件的更改(保存後?或在給定時間後自動寫入)
我的配置是Mountain Lion和最新的XCode。
我正在弄一個非常簡單的應用程序,它可以讀取指定文件中的數據並將提取的數據填充到NSTableView
。該文件是一個純文本文件,每行代表一個對象(我需要解析該文件)。我想使用核心數據,我的問題是可可方式做什麼?可可核心數據和純文本文件
我的第一個想法是解析文件併爲表示一行的實體創建實例。我不確定這是最好的解決方案。後來我會寫出文件的更改(保存後?或在給定時間後自動寫入)
我的配置是Mountain Lion和最新的XCode。
具有多個屬性的單個實體聽起來不錯。如果您擁有一個擁有合理數據量的屬性,並在多個「行」上重複,那麼它將成爲另一個實體的候選對象。
是的,您的實體的每個實例將代表您的表中的一行。
就我個人而言,我會根據用戶的要求保存,或者沒有保存按鈕並保存每個更改。您的問題是您的內存存儲和磁盤存儲之間的轉換。使用純文本文件不會有幫助(但是,根據文件格式,可以使用NSFileHandle
編輯文件中的單獨行)。
通常,使用更好的格式(如XML或JSON),然後使用像RestKit這樣的框架,可以爲您完成所有解析和映射(指定映射配置後)。
您也可以使用bindings將您的數據連接到您的NSTableView
。 Another ref。
我必須使用純文本文件,因爲其他應用程序仍在使用它。你是對的,當用戶做出任何改變時,應用程序應該將數據保存在內存中,隨後將寫入磁盤。有一件事我不完全明白:我通過可可綁定將內存數據綁定到各種GUI元素,但我怎樣才能製作這些行,以及如何將它們提供給Core Data? – hcpeter
假設源文件中的每行代表一行並且具有設置的格式,因此您需要通過它解析('NSScanner')並創建和更新實體的實例。 – Wain
現在我正在努力寫作文件。當程序啓動時,我讀取整個文件並解析每一行,但在保存之前,我必須檢查文件是否更改。 (因爲有可能另一個客戶端更改文件)。我不知道我應該如何在可可中做到這一點,在我寫出來之前再次閱讀文件? – hcpeter
對象有多少屬性?爲什麼要寫回到一個文件(你想僅僅使用Core Data進行內存中緩存?)? – Wain
實體非常簡單:它有6個屬性。我計劃將解析的實體存儲在內存中。該應用程序將是一個基本的_CRUD_應用程序,用戶可以添加和刪除條目,這就是爲什麼我要寫回文件。 – hcpeter