0

我制作了一个 Core Data 应用程序,我想将其保存file.sqlite到与默认目录不同的目录中。我遇到了这个SO 线程,然后发布了这个 SO 问题,并且该项目似乎正在编译,但我file.sqlite没有保存在我指定的位置。我创建了一个方法,并向AppDelegate.m文件中添加了一些代码,但storeURL变量仍保存file.sqlite在默认的“文档目录”中。如何调用我在AppDelegate.m文件中创建的方法来指定storeURL变量的正确位置?

我是否应该改变,

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

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

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

4

1 回答 1

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
于 2012-08-12T17:35:40.577 回答