У меня есть этот код, написанный для моего - (NSPersistentStoreCoordinator *) persistentStoreCoordinator в приложении coreData. Я использовал шаблон приложения Master-Detail Xcode, чтобы создать приложение ...Тестирование NSFileProtectionComplete в iOS-симуляторе и устройстве
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
if (__persistentStoreCoordinator != nil) {
return __persistentStoreCoordinator;
}
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"Notes2.sqlite"];
NSError *error = nil;
__persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
NSString *urlString = [storeURL absoluteString];
NSDictionary *fileAttributes = [NSDictionary dictionaryWithObject:NSFileProtectionComplete forKey:NSFileProtectionKey];
if (![[NSFileManager defaultManager] setAttributes:fileAttributes ofItemAtPath:urlString error:&error])
{
// Handle error
}
return __persistentStoreCoordinator;
}
Как я могу проверить, и знаю, что мой SQLite имеет NSFileProtectionComplete включен?
Я заблокировал симулятор, но файл был доступен для чтения, когда я дважды щелкнул по файлу в Finder.
Я также проверил его на устройстве, заблокировав устройство, используя iTunes и общий доступ к файлам iTunes, чтобы скопировать файл с устройства на рабочий стол ... но файл был по-прежнему доступен для чтения. – OscarTheGrouch
Вы смогли это проверить? – yoninja