首先加载JSON数据然后模拟iOS

时间:2012-09-27 05:15:29

标签: ios json

想象一下,您正在连续从服务器读取json数据。让我们说,你得到的是天气数据。我想在2小时后才显示数据。每当用户点击播放按钮时,它就会在地图上显示天气数据 我如何首先保存json数据然后在地图上显示它。因为这会增强我的应用程序而不是连接服务器,获取数据并同时显示它。请给我建议。我是否需要先将其保存为plist或数组?在我模拟之前,我应该在哪里保留这些数据?

1 个答案:

答案 0 :(得分:1)

将它存储在文档目录中的plist中是保存数据供以后参考的好方法。如果要保存JSON字符串,也可以选择NSUSerDefaults ..(最好是字符串不是太大)< / p>

保存到plist ..

 NSURL  *url = [NSURL URLWithString:serverPath];
    NSData *urlData = [NSData dataWithContentsOfURL:url];
    if ( urlData )
    {
        NSArray       *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

        NSString  *documentsDirectory = [paths objectAtIndex:0];  

        NSString  *filePath = [NSString stringWithFormat:@"%@/myplist.plist", documentsDirectory];

        [urlData writeToFile:filePath atomically:YES];
    }

并检索它..

NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

NSString  *filePath = [documentsDirectory stringByAppendingPathComponent: 
                      [NSString stringWithFormat: @"%@/myplist.plist",documentsDirectory ] ];

NSData *retrievedData   = [NSData dataWithContentsOfFile:filePath];