にフェッチ私はNSFileProtectionKeyはこのような属性を使用してファイルのセキュリティを使用していたとき:だからファイルのセキュリティデバイスがロックされていると、背景がiOS7
[[NSFileManager defaultManager] setAttributes:@{NSFileProtectionKey : NSFileProtectionComplete} ofItemAtPath:coreDataFilePath error:NULL];
デバイスは、パスコードロックされている場合、そのパスにはファイルを開くことができません。問題は、デバイスがロックされている間でもiOS7 Appsがバックグラウンドで実行できることです。そのCoredata [NSManagedObjectContext save:]
のように実行しているときにエラーで失敗します:
NSCocoaErrorDomain, 134030, The operation couldn’t be completed. (Cocoa error 134030.) { NSSQLiteErrorDomain = 23; NSUnderlyingException = "Updating max pk failed: authorization denied"; }
?
「デバイスをロック解除してからマージするまでは、NSFileProtectionCompleteUnlessOpenを使用して別の場所にデータを書き込む」ことが一般的には望ましい方法です。ユーザーがデバイスのロックを解除することを決定するまで、コアデータに書き込まれるデータをどのように格納しますか? – user3687
ネットワーク形式(多くの場合、JSON)を記述します。またはNSCodingでオブジェクトをシリアライズする。どちらの場合でも、Core Dataがロックされるまでファイルに保存します。 –
RAWファイルをディスクに保存しないと、アプリケーションのセキュリティ上のリスクが発生します。とにかく、コアデータがロックされていないかどうかを検出する方法に関する提案はありますか? – user3687