2009-07-24 27 views
1

我在我的應用程序中使用了由Core Data支持的NSPersistantDocument在覈心數據文檔中存儲文檔特定設置的最佳方式是什麼?

每個文檔都有一些只與該文檔相關的設置。例如,文檔需要保存通訊簿組的唯一ID,以便日後更新。

我想要接近這個的方式是有另一個模型,DocumentSetting,它有兩個屬性;一個關鍵字和一個值,其中包含NSString

理想情況下,我想要類似於NSUserDefaults的東西,但存儲在文檔中。

有沒有人做過這個?有沒有更好的方法來解決這個問題?

回答

4

NSPersistentStore上的setMetadata:方法可用於存儲每個文檔的設置。有關如何使用商店元數據的文檔可以找到here。正如在文檔中建議的那樣,對於可以放在那裏的東西存在一些大小限制。如果您需要存儲比幾個鍵/值對更實際的內容,我會建議在數據模型中創建一個新實體來存儲這些數據。

2

正如Brian所說,持久性存儲的元數據是這類事情的好地方。或者,您也可以添加一個單獨的實體(我過去曾使用這兩種方法)。請記住,如果此DocumentSetting實體與文檔模型中的其他實體沒有關係,則可以將其放入單獨的xcdatamodel中,並在運行時使用-[NSManagedObjectModel mergedModelFromBundles:]合併模型。至少這樣你可以保持你的「源」模型文件有點隔離。

就策略而言,除非您打算擁有大量這些文檔設置或希望單獨查詢它們,否則您可以使用可轉換屬性並將NSDictionary(存檔)NSDictionary存儲在您的DocumentSettings實體中。這會讓感覺更像NSUserDefaults API,它基本上就像字典一樣。

相關問題