17

iPhone アプリ (タイムトラッカー、ToDoList など) を開発するとき、データを処理する最善の方法がわかりません。plist を使用したら、次回は sqlite または CoreData を使用します。

プロジェクトに最適なものをどのように決定しますか? (データ管理についてのみ話します)

たとえば、開発したい場合:

  • タイム トラッカー アプリ > PList を選択しますか?
  • RSS リーダー アプリ > CoreData?
  • 写真アプリ > sqlite?
  • メール クライアント > ?

初心者のために、適切な方向を大まかに教えてもらえますか? (アプリとアプリで何をしたいかによって大きく異なることはわかっていますが、どんな考えでも役に立ちます)

私は複雑なアプリの開発にはほど遠いですが、それらはまだ非常に単純です。

助けてくれてありがとう、マーク

4

2 に答える 2

29

これらの経験則を使用して、アプリに適したストレージ モデルを決定できます。

  • データが完全にメモリに収まり、比較的構造化されていない場合は、plist を使用します
  • データが完全にメモリに収まり、ツリーのような構造をしている場合は、XML を使用します
  • データがメモリに収まらず、グラフの構造を持ち、アプリが特別なクエリ機能を必要としない場合は、Core Data を使用します
  • データがメモリに収まらない場合、複雑な構造を持っている場合、またはアプリケーションがリレーショナル データベースによって提供される強力なクエリ機能の恩恵を受ける場合は、sqlite を使用してください。
  • データを秘密にする必要がある場合 (パスワードなど)、keychainを使用します。

複数のストレージ モデルが同じアプリに適合するため、これらの選択肢は重複することが多いことに注意してください。最終的な決定は、個人の好みに依存します。よりよく理解しているテクノロジを選択します。

Stack Overflow でsqlite と Core Data に関する非常に良い質問がありました。その質問への回答を一読することをお勧めします。

于 2012-04-20T11:09:34.383 に答える
1

それらのそれぞれに対する私の経験則は次のとおりです。

  • タイム トラッカー アプリ > コア データ
  • RSS リーダー アプリ > コア データ
  • 写真アプリ > コアデータ
  • メール クライアント > コア データ

ただし、いずれの場合も、ファイル システムに保存するものがあります。たとえば、写真アプリは明らかに実際の写真をファイル システムに配置します。電子メールのテキストはファイル システムなどにあります。実際の RSS メッセージもテキスト ファイルである可能性がありますが、Core Data オブジェクトにメタ データが含まれています。

ある時点で、格納しているデータが Core Data のスケーラビリティを超えていることに気付く場合があります。その時点で、SQLite への移行を検討することになります。

ポイントは、Core Data は非常に使いやすく、主張されている軽量の代替品よりも優れているということです。なぜそれを使用しないのでしょうか?

于 2012-04-20T12:22:33.730 に答える