私はすべてのCoreDataがData Protectionを使用して確実に保護されるようにしています。コンテナにNSPersistentStoreDescriptionを設定しようとすると、CoreDataオブジェクトは保存されません。以下に示す行をコメントアウトすると、すべてのオブジェクトが保存され、読み込まれます。私が行を有効にすると、何も保存されません(あるいは、読み込みが静かに失敗するかもしれません)。エラーは発生せず、ログも生成されません。私はプロビジョニング・プロファイル(完全なUnnlessOpenと一致)にData Protection資格を持っています。私は非常に基本的な何かを逃している必要があります。persistentStoreDescriptionsを設定すると、CoreDataオブジェクトは保存されません
これはXcodeの8.2.1(8C1002)
誰もが任意の洞察力/アドバイスを提供することはできますか?
lazy var persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "my_app")
let description = NSPersistentStoreDescription()
description.shouldInferMappingModelAutomatically = true
description.shouldMigrateStoreAutomatically = true
description.setOption(FileProtectionType.completeUnlessOpen as NSObject?, forKey: NSPersistentStoreFileProtectionKey)
// *** ALLOWING THIS NEXT LINE TO EXECUTE CAUSES PROBLEM ***
container.persistentStoreDescriptions = [description]
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error as NSError? {
print("Unresolved error \(error), \(error.userInfo)")
fatalError("Unresolved error \(error), \(error.userInfo)")
}
})
return container
}()
:
これはの出力を印刷して確認することができますか? – sschale
それは私がその答えを知りたいと思う大きな質問です。これがデフォルトで起こると言う文書を私に教えてください。 – bz13
私は 'let attributes = try FileManager.default.attributesOfItem(atPath:url.relativePath)'でそれを確認しました。私のファイルはデフォルトでは 'NSFileProtectionComplete'です。 – sschale