【问题标题】:How to store JSON data with images and or videos offline?如何离线存储带有图像和/或视频的 JSON 数据?
【发布时间】:2013-08-19 13:26:34
【问题描述】:

我有一个应用程序,它显示带有图像和/或视频的文本数据,这些数据显示在 UITableView 中。我现在有一个要求,数据必须离线可用。每次连接时,我都在考虑清除和存储数据,即正在下载新数据。如何实现 - 将数据存储在 mysql 表或任何其他解决方案中。请注意,我正在使用 AFNetworking 在 uiimageview 中流式传输图像。图像和视频应该存储为 blob 是本地 mysql 数据库吗?请注意,我的项目没有使用 coredata。

【问题讨论】:

    标签: iphone ios offlineapps offline-mode


    【解决方案1】:

    最好的方法可能是下载媒体文件并将其存储在caches 目录中。

    然后,当您需要访问一个文件时,您可以检查它是否存在,如果存在,则使用它,如果不存在,则以您需要的任何方式处理该条件。

    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    if(![fileManager fileExistsAtPath:[cachePath stringByAppendingPathComponent:@"myfile.zip"]]) {
        //create it, copy it from app bundle, download it etc.
    }
    //start using it
    

    缓存目录不会与您应用的其余部分一起备份,因此如果您有大文件,您不会以这种方式影响用户的备份存储大小。

    如果您绝对必须在备份中有文件,请使用Documents 目录而不是caches 目录。

    您说您使用的是AFNetworking,它可以将下载流式传输到文件中,甚至支持将任务转为后台操作,以便在应用关闭后完成。

    【讨论】:

    • 您好,感谢您的回复。你的意思是我应该将图像和 JSON 数据存储在缓存目录中?
    • 没错,Veereef。将图像和 json 数据存储在缓存目录中,然后在访问它们之前检查它们是否存在。如果没有,请下载它们。
    • 谢谢,我们会按照建议做的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-24
    • 2018-10-25
    • 1970-01-01
    • 2012-12-16
    相关资源
    最近更新 更多