我的 iOS 应用程序更新从用户的旧版本中删除持久性数据



在我的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的更新。用户给我发了电子邮件,抱怨他们的预设在更新....时被删除了

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

任何帮助将不胜感激!!

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

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

您应该可以自由地在这里添加/删除您的核心内容的文件/目录。

问题可能出在这段代码上:

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

根据基础常数参考NSApplicationSupportDirectory是:

NSApplicationSupportDirectory

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

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

相关内容

  • 没有找到相关文章

最新更新