如何在本地存储带有图像的数据以供以后使用iphone

时间:2012-08-22 07:26:41

标签: iphone ios

我可以从服务器获取数据并在UITableView上显示,它工作正常。但当我转到另一个选项卡并返回到相同的选项卡时,它将调用服务器获取数据。我想从服务器获取本地数据。 请建议我你的想法。 谢谢!

2 个答案:

答案 0 :(得分:1)

您必须将文件存储在设备上,这可以通过以下几种方式实现:

  1. 将文件存储在App its Documents目录
  2. 将文件存储在App its Library / Caches文件夹
  3. 将文件存储在App its Library / folder
  4. 每个选项都有一些注意事项:

    1. 默认情况下,iCloud会备份存储在Documents文件夹中的文件。你真的必须考虑是否有必要,因为你正在吃掉用户的iCloud存储空间(他/她可能会为此付费)。
    2. 将文件存储在Caches文件夹中是一种好方法,但如果用户磁盘空间不足(因此名称为Cache),它们可能会被iOS删除。
    3. 只要安装了应用程序,就会将文件存储在设备上的另一个(手动创建的)文件夹中。没有iCloud备份或没有iOS删除
    4. 可以使用以下方式获取特定文件夹的位置:

      [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
      

      当您希望NSURL到Library文件夹时,必须用NSLibraryDirectory替换NSDocumentDirectory

      存储数据就像创建NSURL一样简单,NSURL指向要存储数据的位置,然后在要存储的NSData上调用writeToURL:atomically:方法。

      可以使用UIImageJPEGRepresentationUIImagePNGRepresentation将UIImages转换为NSData。

答案 1 :(得分:0)

我更喜欢使用HJCache库来暂时存储图像。

以下是实现HJCache开源库的原因。

  1. 在iOS应用中轻松使用异步加载的图像。
  2. 轻松使用共享文件缓存。
  3. 根据Cocoa规范使内存管理“正常工作”。
  4. 支持查看图像的典型案例,例如滚动显示推特信息图片的推文列表,浏览通过网络加载的相册。
  5. 允许库也用于其他类型的数据。
  6. 有关详情和教程,请访问githubauthor博客