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