我的iOS应用更新删除了用户的持久数据'旧版本

时间:2014-03-11 18:35:27

标签: ios user-interface ios7 persistent-storage

在我的iOS应用程序中,我允许用户保存他们的UI预设。

NSArray* theDirs = [[NSFileManager defaultManager] URLsForDirectory:NSApplicationSupportDirectory
                                                          inDomains:NSUserDomainMask];
NSURL *supportDir = [theDirs objectAtIndex:0];
NSURL *presetURL = [supportDir URLByAppendingPathComponent:@"Presets"];

// Write to disk.
NSData *presetData = [NSPropertyListSerialization dataWithPropertyList:mainDict format:NSPropertyListBinaryFormat_v1_0 options:0 error:nil];
NSString *presetPath = [[presetURL path] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.preset", presetName]];
if ([[NSFileManager defaultManager] fileExistsAtPath:presetPath]) {
    [[NSFileManager defaultManager] removeItemAtPath:presetPath error:nil];
}
[[NSFileManager defaultManager] createFileAtPath:presetPath contents:presetData attributes:nil];

我刚刚在iOS7的应用商店发布了更新。用户已通过电子邮件向我抱怨他们的预设在更新后已被删除....

是我选择使用的目录(支持)???

任何帮助都将不胜感激!!

2 个答案:

答案 0 :(得分:1)

尝试使用文档目录。您可以像这样访问它:

NSArray *directoryPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *directory = [directoryPath objectAtIndex:0];

您可以自由地在此处添加/删除文件/目录。

答案 1 :(得分:0)

可能问题在于此代码:

NSArray* theDirs = [[NSFileManager defaultManager] URLsForDirectory:NSApplicationSupportDirectory inDomains:NSUserDomainMask];

根据Foundation Constants Reference NSApplicationSupportDirectory是:

  

<强> NSApplicationSupportDirectory

     

应用程序支持文件的位置   (Library/Application Support)。
  适用于iOS 2.0及更高版本   在NSPathUtilities.h中声明。

AFAIK iPhone设备中没有这样的文件夹,可能就是这个原因。