越狱 - 重新定位Core Data应用程序的“Documents”目录

时间:2012-08-06 22:17:09

标签: ios xcode core-data jailbreak

我制作了一个Core Data应用程序,我希望将file.sqlite保存到默认的不同目录中。我遇到了这个SO thread,然后发布了this SO question,项目似乎正在编译,但我的file.sqlite未保存在我指定的位置。我创建了一个方法,并在AppDelegate.m文件中添加了一些代码,但storeURL变量仍将file.sqlite保存在默认的“Documents”目录中。如何调用我创建的方法在AppDelegate.m文件中指定storeURL变量的正确位置?

我应该改变吗,

NSURL *storeURL = [NSURL fileURLWithPath: [docPath stringByAppendingPathComponent:@"Accounts.sqlite"]];

NSURL *storeURL = [NSURL fileURLWithPath: [documentsDirectoryPath stringByAppendingPathComponent:@"Accounts.sqlite"]];

这也会破坏iOS模拟器的支持吗?

1 个答案:

答案 0 :(得分:1)

我通过保留模拟器的默认文档路径,然后为设备设置不同的文档路径来解决此问题。以下代码位于我的 AppDelegate.m 文件

// add conditional code for simulator and iDevice
#if TARGET_IPHONE_SIMULATOR
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *docPath = [documentPaths objectAtIndex:0];

NSURL *storeURL = [NSURL fileURLWithPath: [docPath stringByAppendingPathComponent:@"Accounts.sqlite"]];
#else
// jailbroken path - /var/mobile/Library/KegCop/
NSString *docPath = self.documentsDirectoryPath;

NSURL *storeURL = [NSURL fileURLWithPath: [docPath stringByAppendingPathComponent:@"Accounts.sqlite"]];
#endif