Core Data を組み込んだゲーム プロジェクトに取り組んでおり、コードをできるだけモジュール化したいと考えています。
現在、コア データの「階層」チェーンは次のようになっています。
コア データ エンティティ -> SaveGame クラス -> GameLogic クラス -> レシーバー
SaveGame クラスは、managedObjectContext、さまざまなエンティティ、保存および上書き操作など、コア データに関連するすべてを処理します。
GameLogic クラスは、ゲームの仕組みを処理し、コア データから渡されたデータを使用して、収入の計算、現在の金額の計算、レベル変更の処理などのいくつかのことを行います。
私はこのセットアップに満足していません.次のように、何もありません。
+(NSArray *)passCoreDataInfo
{
return [CoreDataEntity fetchCoreDataEntityInfo] // ExecuteFetchRequest
}
これは、階層の下位のクラスで次のように使用されます。
+(NSArray *)passCoreDataInfoAgain
{
return [HigherClass passCoreDataInfo]
}
チェーンのどこかで私のレシーバーが何か役に立つまで:
(...)
NSArray *coreDataInfo = [SomeClass passCoreDataInfoYetAgain];
(...)
これはおそらく多くのメモリと処理能力を浪費しますが、恐ろしい「全員が全員と話す」モデルに屈したくありません。
y 階層をより適切に設定し、同じデータの受け渡しを回避する方法についてのヒントを教えてください。