我能够从服务器获取数据并在 UITableView 上显示,它工作正常。但是当我转到另一个选项卡并返回同一个选项卡时,它会调用服务器获取数据。从服务器获取数据后,我想在本地存储数据。请建议我你的想法。谢谢!
问问题
685 次
2 回答
1
您必须将文件存储在设备上,这可以通过以下几种方式实现:
- 将文件存储在 App 的 Documents 目录中
- 将文件存储在 App 的 Library/Caches 文件夹中
- 将文件存储在 App 的 Library/ 文件夹中
每个选项都有一些注意事项:
- 存储在 Documents 文件夹中的文件默认由 iCloud 备份。您真的必须考虑这是否有必要,因为您正在占用用户的 iCloud 存储空间(他/她可能会为此付费)。
- 将文件存储在 Caches 文件夹中是一个好方法,但如果用户磁盘空间不足(因此命名为 Cache),它们可能会被 iOS 删除。
- 只要安装了应用程序,将文件存储在设备上的另一个(手动创建的)文件夹中就会保留它们。没有 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 回答