コア データ用に生成された SQLite ファイルの保護レベルを構成することはできますか?
NSFileProtectionComplete
レベルを使用する必要があります。
何か案は?
コア データ用に生成された SQLite ファイルの保護レベルを構成することはできますか?
NSFileProtectionComplete
レベルを使用する必要があります。
何か案は?
あなたがする行を探してくださいaddPersistentStoreWithType:configuration:URL:options:
NSURL *storeURL = ...;
NSError *error = nil;
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:...];
if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil
URL:storeURL
options:nil
error:&error])
{
NSLog(@"Add persistent store failed: %@", error);
}
それから加えて:
NSDictionary *attributes = @{NSFileProtectionKey: NSFileProtectionComplete};
if (![[NSFileManager defaultManager] setAttributes:attributes
ofItemAtPath:path
error:&error]) {
NSLog(@"File protection failed: %@", error);
}
バックグラウンドでデータベースを使用できないことに注意してください。NSFileProtectionCompleteUnlessOpen の使用を検討してください。
NSFileProtectionComplete
: ファイルは暗号化された形式でディスクに保存され、デバイスのロック中または起動中は読み書きできません。NSFileProtectionCompleteUnlessOpen
: ファイルは暗号化された形式でディスクに保存されます。デバイスがロックされている間はファイルを作成できますが、一度閉じると、デバイスのロックが解除されるまで再び開くことはできません。ロックが解除された状態でファイルが開かれている場合、ユーザーがデバイスをロックしても、引き続きファイルにアクセスできます。ファイルを作成して開くときはパフォーマンスがわずかに低下しますが、書き込みや読み取りを行うときはそうではありません。NSFileProtectionComplete
これは、デバイスのロックが解除されているときにファイル保護を変更することで軽減できます。