0

我正在尝试将基于硬盘的恢复功能编码到适用于 iOS 设备的现有演示照片应用程序中。这个想法是允许用户恢复最后应用的效果和所有效果,即使在重新启动应用程序/意外崩溃等之后也是如此。

我将一个图像文件(应用到它的最新效果)保存到 NSCachesDirectory 中:

     NSData* data = UIImagePNGRepresentation(image);
    [data writeToFile:[self getFileAtIndex:getPath] atomically:YES];

转到恢复选项时,使用以下方法恢复保存在此路径的文件:

    image = [[UIImage imageWithContentsOfFile:[self getFileAtIndex:getPath]]retain];

该代码在我的测试设备(iPhone 4s)中运行良好。但不知何故,我怀疑这是否是编码恢复功能的最佳实践。

进入现实世界的应用程序,如果内容存储在 NSCachesDirectory 中,您认为它会备份到 iCloud 中吗?是否有可能与其他应用程序发生冲突?

NSCachesDirectory 目录是如何为同时访问的多个应用程序管理的?

我想知道这样做的最佳做法。

请帮助/评论。

4

1 回答 1

0

正如 Bonjour 先生在评论中提到的,在 iOS 上,每个应用程序都有其独立的文件系统,因此永远不会与其他应用程序发生任何冲突。

缓存目录未在 iCloud 上备份,您不应依赖缓存目录中的文件在启动时保留。您应该仅将缓存目录用于临时文件。如果您只允许在一个会话期间恢复,那么使用 caches 目录就可以了,但是如果您想允许跨多个启动恢复,您应该将它们存储在 library/documents 目录中。但请注意,Apple 对在 Documents 目录中存储文件有严格的审查政策,因为它会占用用户的云存储空间。

于 2013-03-25T08:52:28.010 回答