2012-03-05 123 views
11

我們正在尋找一種方法來記錄核心數據實體。到目前爲止,我想出的唯一真正的選擇是:用戶信息條目記錄核心數據實體屬性

  1. 文檔外部使用UML或其他一些標準的
  2. 創建每個實體NSManagedObject子類,並使用代碼註釋
  3. 使用用戶信息字典創建一個鍵值對保存一個字符串評論

選項1感覺太多額外的工作和事情,幾乎肯定會過時的99%的時間的。

選項2感覺自然且比選項1更正確。最大的疑惑在於,如果使用Xcode重新生成此模型類,那些註釋可能會丟失。

選項3感覺有點比選項2少正確的,但增加自動化的可能性有關於元數據提取的額外優勢。例如,在我們的一個應用程序中,我們需要密切關注我們在設備上本地存儲的內容以及同步到iCloud。使用用戶信息字典,很容易自動創建某種形式的製造品,可以在內部和外部(由客戶端)檢查是否符合規定

所以我的問題是使用用戶信息是否不合適字典爲此目的?還有其他的選擇我錯過了嗎?

回答

5

選項2是我每次使用的。如果你看看你的核心數據模型(something.xcdatamodeld或something.xcdatamodel),你會看到類似下面的圖片。

core data entity in XCode

你可以配合你的實體,任何你想要的類,然後把意見在那裏。如果你保持你的實體名稱與你的類名相同,以明確你做了什麼,這會有所幫助。

此外,這也使您能夠添加自動化。您可以通過創建自定義獲取者和設置者(訪問器方法)和自定義方法來實現此目的。

2

我使用選項2和類別。我將讓XCode生成NSManagedObject子類,並在這些子類中使用一個類別。對於類別,我不會放棄對類別所做的更改,可以記錄,製作自定義getter和setter,而且我仍然可以使用生成的子類。

+0

完全同意。你不應該手動修改由Xcode生成的自動生成的代碼,因爲下一個處理你的代碼的人不會知道你已經這樣做了,並且在他重新生成類時會刪除你的所有評論。類別是一個整潔的解決方法。 – Ant 2012-11-21 16:49:09

1

如果我們只說大約記錄(即寫更多或更少的大量文本中的哪一個要由人來閱讀)您的課,我會使用選項2

如果你所關心的在選項2中Xcode覆蓋你的類的可能性,你可以考慮爲每個實體創建兩個類:一個由Xcode生成並且總是可以替換的類(通常不會觸及該文件),另一個從生成的類繼承並在其中你把你所有的自定義和評論。

這兩種方法是由mogenerator提出的。

雖然如果您需要存儲一些元數據與將以編程方式進行處理的實體,userInfo完全適合於此。