【问题标题】:Loading JSON Data first then simulating-iOS先加载JSON数据再模拟-iOS
【发布时间】:2012-09-27 05:15:29
【问题描述】:

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

【问题讨论】:

    标签: ios json


    【解决方案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];
    

    【讨论】:

    • 非常感谢。实际上字符串会很大。我怎么能更新我的 plist。我应该删除并重新创建吗?这是推荐的吗?你知道任何可以帮助我弄清楚的文件吗?
    • 非常感谢!您认为将我的数据保存在临时 plist 中将是最好的解决方案,对吗?因为我想避免一直连接到服务器,所以每当用户请求连接时,我想给加载时间以将数据写入 plist 并从 plist 读取我的数据。否则用户可能会认为应用程序运行缓慢。
    猜你喜欢
    • 2012-09-27
    • 1970-01-01
    • 2016-04-26
    • 2021-10-21
    • 1970-01-01
    • 2020-12-06
    • 1970-01-01
    • 2019-11-27
    • 1970-01-01
    相关资源
    最近更新 更多