アプリケーションで CoreData を使用しています。CoreData とその生成されたモデル オブジェクトを直接使用する代わりに、消費者が API を使用できるように、すべての CoreData 関連のものを API として抽象化したいと考えています。CoreData は、次のようにマネージド オブジェクト モデルを生成します。
@interface Person : NSManagedObject
@end
MyAPI などの API を定義したいのですが、次のような関数があります。
createPerson:(Person*)p;
したがって、この createPerson API のコンシューマーは、Person データ オブジェクト (Java の世界の POJO など) を作成し、この API を呼び出す必要があります。しかし、私は Person オブジェクトを作成できません
Person *p = [Person alloc] init]
CoreData によって作成されたこの Person モデルの指定された初期化子は、このタイプの作成を許可しないためです。
したがって、対応するユーザー向けデータ オブジェクトを PersonDO である可能性があると定義する必要があります。この API は、データを API 実装に運ぶ代わりにそれを使用する必要がありますか?
私のアプローチは正しいですか?このようにAPIを設計することが良い設計パターンであるかどうか、専門家のアドバイスはありますか?