2012-05-09 14 views
7

Tengo este código escrito para mi - (NSPersistentStoreCoordinator *) persistentStoreCoordinator en una aplicación coreData. Solía ​​plantilla Aplicación Maestro-Detalle de xCode para crear la aplicación ...Prueba NSFileProtectionComplete en iOS simulador y dispositivo

- (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; 
} 

¿Cómo puedo probar y saber que mi sqlite ha NSFileProtectionComplete encendido?

Cerré el simulador, pero el archivo aún era legible cuando hice doble clic en el archivo en Finder.

+0

También lo probé en un dispositivo bloqueando el dispositivo luego usando iTunes y el uso compartido de archivos de iTunes para copiar el archivo desde el dispositivo a mi escritorio ... pero el archivo aún era legible. – OscarTheGrouch

+1

¿Pudiste probar esto? – yoninja

Respuesta

0

iTunes no copiará archivos del dispositivo a menos que tenga su contraseña o el dispositivo haya sido previamente confiable; así es como es capaz de descifrar los datos.

En Xcode 8 y versiones anteriores, el simulador utiliza el sistema de archivos host y macOS no admite actualmente el cifrado por archivo de la misma forma que lo hace iOS, por lo que en macOS no puede probar esto en el simulador.

Cuestiones relacionadas