0

パイプラインに最初のアプリがあり、それがどのように機能するかを正確に知っています。私の頭を悩ませているのは、バックグラウンドにあるコア データ モデルです。

アプリの前提は、誰かにお金を贈ったとき、その人からお金を受け取ったとき、または贈り物を受け取った/贈ったときの記録です。古い世代を対象としているため、それほど複雑になることはありません。

UI の原則は、最初のタブが「タイムライン」であるタブベースのアプローチになります。タイムラインで誰に贈ったり受け取ったりしたかを示します。

タイムラインに表示されるデータは次のとおりです。 - 各「セクション」の上部にある日付 - イベントの名前 - 人の名前 - 場所 - 通貨 - 金額

これをタイトルとサブタイトルを含むセルに表示し、場合によっては機会と場所をマージすると思います。ユーザーがセルをクリックすると、そのユーザーとあなたの間のすべてのエントリとトランザクションが表示されます。

ユーザーは、イベント名、人物名、場所、および/または日付で検索することもできます。

これを念頭に置いて、コア データ モデルをどのように作成するか頭の中にありますが、意味がありません。

NSFetchedResultsController を使用したいので、複数のエンティティにまたがって fetchrequest できないことは理解していますが、関係を使用することはできます。これは私が迷子になるところです。

私が持っている 1 つのアイデアは、属性として nameOfEvent、nameOfPerson、Date、Currency、および Amount を持つ単一のエンティティを持つことです。そうすれば、タイムライン ビューで、各セルのすべての情報を取り込むことができます。

同時に、エンティティがもっとあるはずなので、これは私には完全には意味がありません。たとえば、次のように想像します。

機会 (エンティティ) 名前 (属性) 場所 (属性) 日付 (属性)

人(エンティティ)名(属性)

Gift (エンティティ) MoneyAmount (属性) Currency (属性) Gift (属性 - オプション)

アクション (エンティティ) 与えられた (属性 - ブール) 受信された (属性 - ブール)

それは私の別の考えですが、可能であれば、各セルを取得するには多くの労力が必要になるようです。アプリのユーザーごとに 100 以上のセルが存在することはないため、画像などについては話していません。

私はこのアプローチにこだわっています。先に進んで関係を使用しますか? もしそうなら、何?

私は迷っており、助けていただければ幸いです!

ありがとう、アミット

4

1 に答える 1

0

あなたは正しい軌道に乗っています!

複雑さやデータ量について心配する必要はありません。Core Data は、モバイル デバイスで数千のレコードを簡単に処理できます。リレーションシップを使用すると、このデータを非常に迅速かつ効率的に取得してフィルター処理できます。

データ モデルは次のようになります。

Person <---->> Transaction 
Transaction <<----------> Location
Transaction <<----------> Occasion
Transaction <-----------> Gift

Person (name, birthday, etc)
Transaction (createdDate, status [given, pending, canceled, etc.], category, type)
Location (name, lat, lon, address...)
Occasion (title, category)
Gift (type, amount, currency, shortName, notes)

これが正しく設定されていれば、aNSFetchedResultsControllerを使用して簡単に並べ替えとグループ化を行うことができ、便利なドット表記法を使用してすべてのプロパティに簡単にアクセスでき、フェッチについてあまり心配する必要はありません。

NSUInteger numberOfGifts = person.transactions.count;

NSSet *nearLocations = [locations filteredSetUsingPredicate:locationPredicate];
NSSet *nearTransactions = [nearLocations valueForKeyPath:@"transaction"];

楽しみ!

于 2013-07-25T07:04:16.763 に答える