1

だから私はフィード/タイムラインのようなアプリを実装しています。基本的に、アプリを最初に開いたときにメモリに移動し、そのデータを使用してすぐに戻りますが、バックグラウンドではサーバーから新しいデータを取得しています。問題は、現在、応答を生の JSON ファイルとしてディスクに保存していることです。サーバーから新しいデータを JSON として取得したら、基本的に、この JSON を古いものに追加/マージしてからディスクに保存する必要があります。2 つの JSON をマージする方法がわからないので、これはかなり面倒です。はいの場合、どのように可能ですか?

JSON 形式は次のとおりです。

{
    "data": {
        "last_updated": 1342277036, 
        "stream": [
            {
                "action": {

                    }
                }, 
                "to": [


                ], 
                "from": [

                ],  
                "timestamp": 1342276421
            }, 

 {
                "action": {

                    }
                }, 
                "to": [


                ], 
                "from": [

                ],  
                "timestamp": 1342276421
            }, 

 {
                "action": {

                    }
                }, 
                "to": [


                ], 
                "from": [

                ],  
                "timestamp": 1342276421
            }, 

これが良い方法ではない場合。それでは、未加工の JSON ファイルではなく、NSObject をディスクに保存する方がよいでしょうか?

4

1 に答える 1

0

JSON オブジェクトをマージするのではなく、独自の ObjC オブジェクトを使用してデータをモデル化する必要があります。

JSON データを見ると、ストリームには「アクション」、to/from、および時間が含まれているようです。

したがって、そのデータを表すクラスを作成する必要があります。

次に、JSON をダウンロードしたら、それを解析し、受信したデータからアクション オブジェクトを作成する必要があります。

その後、Core Data などのフレームワークを使用して永続性を処理できます。Core Data はオブジェクト モデル グラフであり、データベースによってサポートされ、Core Data を使用してデータベースにクエリを実行できます。

これにより、「このタイムスタンプ以降のすべてのアクション オブジェクトを取得する」や「これらすべての新しいオブジェクトをデータベースに保存する」などの操作が可能になります。

Core Data プログラミング ガイドを参照してください。

于 2012-07-14T15:34:18.243 に答える