1

私は Core Data が好きで、単純なデータベース トランザクションを簡単に作成できることを楽しんでいます。しかし、実行する必要のある複雑なクエリもいくつかあり、Core Data ではこれらのクエリを簡単に実行できないのではないかと心配しています。

実行する必要があるクエリの種類の例をいくつか示します (これらは MySQL にありますが、必要に応じて後で SQLite に適応させます)。

http://d.pr/n/h0mD

http://d.pr/n/ZVVx

だからここに私の質問があります:

  1. Core Data とその NSPredicates を使用すると、これらすべてを実行できますか? (日付の制約、if/else 条件、結合、group by など)
  2. これが不可能な場合 (または妥当な労力で実行できる場合)、 Core Dataと一緒にFMDB のようなものを使用できますか? (はい、気をつけなければならないことはわかっています)

あなたの洞察を楽しみにしています。ありがとう!

4

2 に答える 2

5

Core データで FMDB を使用しないでください。技術的には、できます。ただし、アプリはある時点で壊れる可能性があります。Apple は、スキーマが予測可能であることを保証しません。コア データは抽象化されており、基になる永続ストアはコア データから切り離されています。彼らは 2013 年の wwdc ビデオでもこれについて言及しました。取得しようとしているクエリは、NSPredicate、NSExpression を使用して生成できます。また、メモリのチェックを行うこともできます (可能な場合)。あなたのクエリを見て、生成できるかどうかを確認します

于 2013-06-15T17:34:03.057 に答える