2012-05-03 132 views
4

我一直在處理核心數據,我想知道最佳做法是什麼擴展Xcode爲我的NSManagedObject實體生成的類。擴展核心數據生成NSManagedObject類

我看到了mogenerator,我也一直在使用類似於SUPER HAPPY EASY FETCHING IN CORE DATA中建議的方法。 所以我有三種類:

  • EasyFetching類別(只有一個類);
  • 生成的NSManagedObject子類(即:_Entity);
  • 自定義子類,包含一些自定義方法,如查找所有非活動對象,清除對象的緩存等(即:實體)。

這種方法讓我做一些自定義代碼,而我可以重構我的核心數據實體並根據需要多次生成它。但我也碰到過一些問題,例如不能爲我的實體聲明對象級別的方法(因爲NSManagedObjectContext只知道我的_Entity類)。

現在我使用類別來擴展我的實體功能。而且這樣做效果更好,因爲我可以使用自定義對象級別的方法。我現在有三種類:

  • EasyFetching類別(因爲它有很多方法,所有我的自定義代碼使用);
  • 生成的NSManagedObject子類(即:實體);
  • 我的NSManagedObject實體的自定義類別(即:Entity + Custom.h)。

我的問題是:你會推薦什麼?

預先感謝您的回答

+1

這基本上就是我一直在做的:我的Core Data實體的自定義類別和一些額外的方法等。至於EasyFetching類別,我實際上是使用基於此的東西 - https://github.com/halostatue/coredata-easyfetch - 這也有助於保持簡單:) –

+1

似乎是目前狀態的問題,在這裏證實:http://www.sunetos.com/items/2011/07/24/how-to-use-custom-classes-with-core-data-without-fear/ –

+0

@piobyz很高興看到所有替代解釋所以人們理解這種權衡。海事組織唯一的任務是指這[鏈接](http://www.cimgf.com/2011/03/13/super-happy-easy-fetching-in-core-data/),因爲它也需要很多當你在做核心數據相關的代碼時工作。 –

回答

2

現在你已經張貼你的問題的答案在我的question, 我想我應該回答你的問題:)

Mogenerator不看壞,給它是一個嘗試。

此外,您使用類別建議的方式也是一個不錯的選擇。

這裏的Infact是一個link,正好解釋瞭如何做。