4

Core Data を初めて扱ったので、NSManagedObject エンティティ用に Xcode が生成するクラスを拡張するためのベスト プラクティスを知りたいと思いました。

私はmogeneratorを見て、 SUPER HAPPY EASY FETCHING IN CORE DATAで提案されているのと同様のアプローチも使用しています。だから私は3種類のクラスを持っていました:

  • EasyFetching カテゴリ (1 つのクラスのみ)。
  • 生成された NSManagedObject サブクラス (例: _Entity);
  • すべての非アクティブなオブジェクトの検索、オブジェクトのキャッシュのクリアなど、いくつかのカスタム メソッドを持つカスタム サブクラス (つまり、エンティティ)。

このアプローチにより、Core Data エンティティをリファクタリングして必要な回数だけ生成しながら、いくつかのカスタム コードを実行できました。しかし、エンティティのオブジェクト レベル メソッドを宣言できないなどの問題にも遭遇しました (NSManagedObjectContext は _Entity クラスしか認識していないため)。

現在、カテゴリを使用してエンティティの機能を拡張しています。カスタム オブジェクト レベル メソッドを使用できるため、これははるかにうまく機能します。現在、3種類のクラスがあります。

  • EasyFetching カテゴリ (すべてのカスタム コードで使用するメソッドが多数あるため);
  • 生成された NSManagedObject サブクラス (つまり、Entity)。
  • NSManagedObject エンティティのカスタム カテゴリ (つまり、Entity+Custom.h)。

私の質問は次のとおりです。何をお勧めしますか?

回答ありがとうございます

4

1 に答える 1

2

あなたが私の質問に対する回答としてあなたの質問を投稿したので私はあなたの質問に答えるべきだと思いました:)

モジェネレーターは悪くないので、試してみてください。

また、カテゴリで提案した方法も良いオプションです。

実際、ここには、その方法を正確に説明するリンクがあります。

于 2012-09-26T07:34:15.697 に答える