2011-02-25 70 views
12

我一直保存在我的iPad应用程序在私有目录中的文件,即一个回来,当我使用:更新iOS应用程序是否删除库目录文件?

paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); 
documentsDirectory = [paths objectAtIndex:0]; 
documentsDirectory = [documentsDirectory stringByAppendingPathComponent:@"Private Documents"]; 

请注意,我还一个子目录追加到它。当我更新应用程序时,用户告诉我他们在应用程序中的进展正在被破坏。每次更新应用程序时,这个NSLibraryDirectory中的文件是否被破坏?如果是这样,我应该使用NSDocumentDirectory吗?

此外,有没有办法进一步更新我的应用程序来补救这一点,而不会破坏我所有我当前用户的保存文件?它似乎并不存在。

回答

2

您应该将它们保存在Documents文件夹中,它在更新中保持不变。

的MonoTouch:documentsDirectory = environment.specialfolder.personal;

的Objective-C:NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)

+0

我真的不明白你上面的代码行。你可以解释吗?从我收集的内容来看,我可以使用NSDocumentDirectory而不是上面所做的操作,并且应该保护subdir免于被擦除,是否正确? – Joey 2011-02-25 21:35:24

+0

是的,这是正确的。上面的代码为您提供了文档目录的字符串路径。更清洁的做法IMO。 – 2011-02-25 21:39:04

+0

克里斯,你确定你在谈论iOS吗?因为没有什么像“environment.specialfolder.personal”。或者你在谈论的定制解决方案访问此。 – 2011-05-24 16:43:50

3

我也想补充这些信息与一个大型的在线游戏中的个人经验。你不能100%地依靠你的“文档”和“图书馆”文件夹永远在那里。实际上,在更新之后,您不能依靠您的应用程序文件夹仍然位于设备上的相同位置。

让我再解释一下。当你在你的设备上安装应用程序时,真正的路径将是/ var/mobile/Applications/[某些班级ID]/[你的应用] .app/... 我们不确定谁定义了你的班级ID应用程序(iOS或应用程序商店),但更新游戏时此ID可能会更改,导致您的应用程序位于不同的文件夹中,因此您的旧文件不再存在。我们的QA也经历过它和我们的用户。

我不会通过我们如何发现了,我们如何设法解决这个问题(私营公司的东西,通常的狗屎......)的细节去,但你需要考虑,如果你正在做的影响吨用户的应用程序,可能会更新几次。它可能已经被修复,但是有一个备份计划总是很好的。

+0

其实我认为我在我的应用程序中也遇到了这个问题...... – Peres 2013-03-22 22:00:53

+0

只有一个问题,您的应用程序的名称是否在名称或空格中添加了特殊字符?因为我怀疑...... – Peres 2013-03-22 22:14:28

+2

通过苹果API检索的路径提供了有关您的应用位于的地址的抽象。在更新过程中,iOS会将您的文档目录备份到新位置。 [some class id]或[you app] .app name中的更改不会影响您的Documents目录文件。你的假设是不正确的海事组织。 ref:https://developer.apple.com/library/ios/DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/PerformanceTuning/PerformanceTuning.html#//apple_ref/doc/uid/TP40007072-CH8-SW10 – tGilani 2013-12-05 06:50:55

17

当用户下载应用程序更新时,iTunes会将更新安装到新的应用程序目录中。然后在删除旧安装之前,将用户的数据文件从旧安装移到新的应用目录。在下面的目录中的文件保证在更新过程中被保留:

APPLICATION_HOME /文件

APPLICATION_HOME /库

虽然在其他用户目录中的文件也可以被移动过,你不应该依赖他们在更新后出席。

这是由苹果官方提供的。看到这个链接: iOS Developer Library - File Saved During App Updates

+3

链接“iOS Developer Library - 应用程序更新期间保存的文件“已损坏 – yair 2015-01-28 11:30:28

+1

https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/PerformanceTips/PerformanceTips.html – 2016-03-11 08:29:35

相关问题