3

ローカル ストレージを必要とする iPhone アプリがあります。

私の最初の考えは、コア データを使用することでした。これはほとんどのアプリで問題ありませんが、主要なチャンクはデータの集計を使用しています。SQLite では、これは MIN、MAX、AVG、GROUP_BY などの標準的な使用法です。

しかし、コア データは主にオブジェクト グラフ管理用であるため、これらをうまく実装していません。CoreData から読み込んだ Obj-C で計算を行うか、それとも SQLite を使い続けて、CoreData システムの他の部分の有用性を放棄する必要がありますか?

集約のためのコレクションは巨大ではありません (最大 100 オブジェクトと言います)。ディストリビューションなどを行う必要があります。

ここには具体的な答えがないことはわかっていますが、2番目のオプションが欲しいだけです。ありがとう

4

3 に答える 3

1

アプリで Core Data と FMDB (SQLite の Objective-C ラッパー) の両方を使用していますが、正常に動作します。Core Data は、テーブル名とフィールド名の前に「Z」を追加します。たとえば、Contacts という Core Data エンティティがある場合、次のようなクエリを実行するSELECT COUNT(*) FROM ZCONTACTSと、SQL クエリの結果が返されます。

于 2011-12-09T16:07:28.680 に答える
0

個人的には、「ほとんどのアプリ」が MIN、MAX、AVG を使用しない限り、CoreData を使い続けます...それでも「ほとんどのアプリ」は SQLite よりも多いからです。

于 2011-12-09T15:30:33.273 に答える
0

両方を使用できます。最初にデータを集計し、ID を選択して使用します

NSManagedObjectContext context; // Get it some how
NSManagedObject *obj = [context objectWithID:objectID];

対応する管理対象オブジェクトを取得します。

于 2011-12-09T15:35:19.060 に答える