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)。
私の質問は次のとおりです。何をお勧めしますか?
回答ありがとうございます