0

想象一下,您正在不断地从服务器读取 json 数据。假设您正在获取天气数据。我只想显示 2 小时后的数据。每当用户点击播放按钮时,它都会在地图上显示天气数据。
我如何先保存 json 数据然后将其显示在地图上。因为这将增强我的应用程序,而不是连接服务器、获取数据并同时显示它。请给我建议。我需要先将其保存为 plist 还是数组?在模拟之前我应该​​把这些数据保存在哪里?

4

1 回答 1

1

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

保存到 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];
于 2012-09-27T05:51:39.747 回答