我制作了一个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模拟器的支持吗?
答案 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