Вы нашли нужное место, вам нужно включить переключатель защиты данных в панели возможностей вашей цели, чтобы сигнализировать, что вы хотите использовать защиту данных. Согласно Apple's documentation, это должно быть достаточно:
По умолчанию уровня защиты является полной защитой, в которой файлы зашифрованы и недоступны, когда устройство заблокировано. Вы можете программно установить уровень защиты для файлов, созданных с помощью вашего приложения [...]
Он утверждает, вы можете установить уровень защиты программно. Если вы хотите, чтобы сделать это (я до сих пор сделать это, чтобы спасти;), вы должны использовать соответствующую опцию при создании 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
означает
Файл хранится в зашифрованный формат на диске и не может быть прочитан или записан в то время, пока устройство заблокировано или загружено.
Вы также можете использовать NSFileProtectionCompleteUnlessOpen
, см. Краткую справку Xcode о различиях.
Пробовали ли вы в документации Apple? С какой частью (-ами) вам нужна помощь? –
@Tom Harrington –
@Tom Harrington Да, я просмотрел документацию Apple о защите данных, но он очень краток и не упоминал о каких-либо полезных методах или о том, как реализовать. Я теперь запутался в том, как реализовать защиту данных iOS в моей базе данных CoreData ~ –