2

現在、私が取り組んでいるプログラムは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
}
4

0 に答える 0