Vous avez trouvé le bon emplacement, vous devez activer le commutateur de protection des données dans le volet des capacités de votre cible pour signaler que vous souhaitez utiliser la protection des données. Selon Apple's documentation, cela devrait suffire:
Le niveau de protection par défaut est une protection complète, dans lequel les fichiers sont cryptées et inaccessibles lorsque l'appareil est verrouillé. Vous pouvez définir par programme le niveau de protection des fichiers créés par votre application [...]
Il indique que vous pouvez définir par programme le niveau de protection. Si vous voulez faire (je fais encore que, pour être sauvés;), vous devez utiliser l'option appropriée lors de la création du persistentStoreCoordinator:
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
@YES, NSMigratePersistentStoresAutomaticallyOption,
@YES, NSInferMappingModelAutomaticallyOption,
NSPersistentStoreFileProtectionKey, NSFileProtectionComplete, // <-- HERE
nil];
...
__persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]) {
...
}
NSFileProtectionComplete
signifie
Le fichier est stocké dans un format crypté sur le disque et ne peut pas être lu ou écrit sur tant que le périphérique est verrouillé ou démarré.
Vous pouvez également utiliser NSFileProtectionCompleteUnlessOpen
, voir l'aide rapide de Xcode pour les différences.
Avez-vous essayé de regarder dans la documentation d'Apple? Avec quelle (s) pièce (s) avez-vous besoin d'aide? –
@Tom Harrington –
@Tom Harrington Oui, je suis allé à travers la documentation d'Apple sur la protection des données, mais il est très bref et ne mentionne aucune méthode utile ou comment mettre en œuvre. Je suis maintenant confus sur la façon de mettre en œuvre la protection des données iOS sur ma base de données CoreData ~ –