0

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

4

2 回答 2

1

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

  1. 将文件存储在 App 的 Documents 目录中
  2. 将文件存储在 App 的 Library/Caches 文件夹中
  3. 将文件存储在 App 的 Library/ 文件夹中

每个选项都有一些注意事项:

  1. 存储在 Documents 文件夹中的文件默认由 iCloud 备份。您真的必须考虑这是否有必要,因为您正在占用用户的 iCloud 存储空间(他/她可能会为此付费)。
  2. 将文件存储在 Caches 文件夹中是一个好方法,但如果用户磁盘空间不足(因此命名为 Cache),它们可能会被 iOS 删除。
  3. 只要安装了应用程序,将文件存储在设备上的另一个(手动创建的)文件夹中就会保留它们。没有 iCloud 备份或没有被 iOS 删除

可以使用以下方法获取特定文件夹的位置:

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

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

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

可以使用UIImageJPEGRepresentation或将 UIImages 转换为 NSData UIImagePNGRepresentation

于 2012-08-22T08:22:34.320 回答
0

我更喜欢将 HJCache 库用于临时存储图像。

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

  1. 使在 iOS 应用程序中使用异步加载的图像变得容易。
  2. 使使用共享文件缓存变得容易。
  3. 根据 Cocoa 规范使内存管理“正常工作”。
  4. 支持查看图像的典型案例,例如滚动显示推特个人资料图片的推文列表,浏览加载在网络上的相册。
  5. 也允许库用于其他类型的数据。

有关更多详细信息和教程,请访问github作者博客

于 2012-08-22T09:30:43.467 回答