2011-12-05 18 views
1

現在、iOS上のGoogle Readerアプリケーションで作業しています。以前にダウンロードしたすべてのデータを保存するにはどうすればよいでしょうか(何千ものニュースになる可能性があります)?コアデータについて聞いたことがありますか?あるいは、XMLやJSONファイルを保存して解析する方が簡単でしょうか?Objective-c:大量のデータを保存する方法(iOS RSSアプリケーション)

はあなたに

+0

Core Dataは、iOS上のファーストクラスの市民であることは言うまでもありませんが、メモリ内外の障害オブジェクトを処理します。したがって、Appleによって細かくチューニングされる機会があります。 :) –

+0

それでは、それがどのように動作するかを確認します。ありがとう –

答えて

3

コアデータまたは直接使用sqliteの

1

使用コアデータをありがとうございます。あなたが必要としているものに最適です。 Xcodeで新しいプロジェクトを開始し、コアデータオプションを選択して、アプリケーションデリゲートに必要なすべてのコアデータコードを入力させることもできます。

1

はい Core Dataを使用してSQLite、XML、またはJSONを学ぶ時間を取らない限り、実装するのに最も簡単で簡単なオプションです.Appleによって、Appleのアプリケーションとオペレーティングシステム用に作成されています。 。コアデータの下www.developer.apple.comで非常に良いドキュメントとサンプルコードはここからスタート : Core Data Programming Guide on developer.apple.com

2

コアデータは、一般に、複雑な関係を持つ大量のデータ(esp)の処理に適しています。

この場合、巨人の肩に立つことができます。 NetNewsWireはiOS RSSレーダー(googleリーダーを使用している)で、しばらくの間Core Dataを使用していました。当時のNewNewsWireの著者は、なぜそれを書くのに十分親切だったのですか?http://inessential.com/2010/02/26/on_switching_away_from_core_data

あなたのRSSリーダーがNetNewsWireと大きく異なるのでなければ、コアデータとsqliteを(直接、またはFMDBのようなフレームワークを介して)使用します。また、コアデータを使用してパフォーマンスを評価すると、「市場投入が速くなる」ことになるでしょう。

(あなたのRSSプログラムの焦点は非常に異なる可能性があります。したがって、万一、10,000データや、Core Dataがもっと助けてくれるものがあれば、update newsItems set read = 1 whereに相当することは決してありません。 、是非Core Dataを実行してください)

注:この回答が書かれて以来、状況は少し変わりました。 iOS 8では、これを回避するバルク演算子のサポートが追加されました。例えばNSBatchUpdateRequestを参照してください。私はそれを直接経験しておらず、iOS 7以前のサポートを削除する必要があります(またはコードを2回書くだけで、iOS 8+の大きなデータセットではうまく動作します)。また、「新しいもの」を使用することについてのすべての警告が適用されます(「よくテストされていません」、「多くの場所が助けに向かうわけではありません」)、あなたの問題に完璧に合っている可能性があります。

+0

iOSのRSSアプリケーションで永続化するために10,000以上のアイテムが必要となるのは非常に不思議です。それは私にはそのような視界のデザインのようだったようです。 IMOでは、ユーザーはすぐにその多くの物語へのアクセスを必要とすることは決してないだろう... –

+0

おそらく彼の記事に投げ込まれた大きさの余分な順序があった。あるいは、彼はそのような構成の本当のユーザーを持っていたかもしれません。私はNNWで200人ほどのフィードを持っており、デスクトップ上ではアイテムを1年間失効させないので、実際には10 k個のアイテムがあるかもしれません。私は、iOSのバージョンをより積極的にプルーニングして、1000個以上のアイテムがある場合は抑制します。 – Stripes

関連する問題