将源流项目NSObject存储在磁盘中或作为JSON存储

时间:2012-07-14 15:28:06

标签: iphone objective-c ios json ipad

所以我正在实现Feed /时间轴类型的应用。基本上,当您最初打开应用程序时,它将进入内存,然后立即使用该数据返回,而在后台则从服务器获取较新的数据。问题是,到目前为止,我将响应存储为磁盘作为原始JSON文件。现在,当我从服务器获取新数据作为JSON时,基本上我需要将此JSON与旧JSON一起追加/合并,然后再将其保存回磁盘。这是一个非常痛苦的因为我不知道如何合并这两个JSON?是否有可能,如果是的话?

JSON格式如下:

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

                    }
                }, 
                "to": [


                ], 
                "from": [

                ],  
                "timestamp": 1342276421
            }, 

 {
                "action": {

                    }
                }, 
                "to": [


                ], 
                "from": [

                ],  
                "timestamp": 1342276421
            }, 

 {
                "action": {

                    }
                }, 
                "to": [


                ], 
                "from": [

                ],  
                "timestamp": 1342276421
            }, 

如果这不是一个好方法。那么最好将NSObject保存到磁盘而不是原始JSON文件吗?

1 个答案:

答案 0 :(得分:0)

您应该使用自己的ObjC对象建模数据,而不是合并JSON对象。

查看您的JSON数据,您的信息流似乎包含“操作”,来往/来自及时间。

因此,您应该创建一个表示该数据的类。

然后,当您下载JSON时,您应该解析它并根据收到的数据创建操作对象。

然后,您可以使用Core Data等框架来处理持久性。核心数据是一个对象模型图,可以由数据库支持,您可以使用核心数据来查询数据库。

这将允许您执行“从此时间戳获取所有操作对象”和“将所有这些新对象保存到数据库”之类的操作。

查看Core Data programming guide