現在、私が取り組んでいるプログラムはCore Dataを使用し、「アカウント」情報をというファイルAccounts.sqlite に保存します。このファイルはDocuments、長い文字列内のディレクトリに保存されます。つまりA89C1398-A7BE-44F1-A337-DABA9C66AF1D 、アプリケーション用のファイルを保存/作成し/var/mobile/Library/KegCop たいこのSOの質問を見つけて、必要な変更を加え、電話からアプリを削除し、RunXcodeのボタンをクリックすると、アプリがビルドされて正常に実行されました。ただし、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
}