目前我工作的程序使用核心数据,并在一个名为文件存储“户口”信息Accounts.sqlite
此文件存储在Documents
目录字符的长字符串,即内部A89C1398-A7BE-44F1-A337-DABA9C66AF1D
所以我想保存/在应用程序中创建的文件/var/mobile/Library/KegCop
我发现这太问题和我做了必要的修改,删除我的应用程序关闭手机,点击Run
在Xcode按钮,内置的应用程序,运行良好。 然而, Accounts.sqlite
文件仍然在Documents
目录。
我添加/修改后续代码到AppDelegate.m
文件,
// default sqlite file path
// NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"Accounts.sqlite"];
// jailbroken path - /var/mobile/Library/KegCop/
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docPath = [documentPaths objectAtIndex:0];
NSURL *storeURL = [NSURL fileURLWithPath: [docPath stringByAppendingPathComponent:@"Accounts.sqlite"]];
然后在创建了以下方法AppDelegate.m
文件,
// set path for documents in jailbreak environment
+(NSString *)documentsDirectoryPath
{
#ifdef JAILBREAK
NSString *documentPath =@"/var/mobile/Library/KegCop";
if (![[NSFileManager defaultManager] fileExistsAtPath:documentPath])
{
[[NSFileManager defaultManager] createDirectoryAtPath:documentPath
withIntermediateDirectories:NO
attributes:nil
error:NULL];
}
return documentPath;
#else
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
return [documentPaths objectAtIndex:0];
#endif
}