Necesita completar la protección de datos, mientras que el procesamiento de datos básicos está en segundo plano

StackOverflow https://stackoverflow.com/questions/4242977

Pregunta

Apenas estoy atrapado en el medio del proyecto.

Mi objetivo es proteger mis datos .

He pasado por Nickharris blog con respecto a ( datos Básicos y iPhone Empresa Aplicaciones - Protección de los datos )

Sin embargo, en la conclusión a la que se menciona claramente que:

Si la aplicación necesita su Tienda de Datos Básicos en ningún procesamiento en segundo plano y no puede utilizar la protección de datos . Cualquier intento de acceder a los archivos que se encuentran en NSFileProtectionComplete causará una excepción .

Y estoy usando datos básicos en el proceso de fondo.

Por favor, ayuda con respecto a este. Quiero cifrar y proteger mis datos de todos modos

Gracias, Tariq

¿Fue útil?

Solución

De acuerdo con la documentación dictados NSFileProtectionComplete que el archivo no se puede leer o escribir en él mientras la aplicación está en el fondo (o no se está ejecutando).

Usted debe estar bien para leer / escribir la tienda SQLite mientras se ejecuta la aplicación, sin embargo no se tiene acceso a ella mientras está en el "fondo".

Esto significa que las operaciones que aprovechan el fondo API de iOS como:

  • notificaciones Push
  • Audio de fondo / Localización
  • La tarea terminó (fondo)
  • Voz sobre IP

no tendrá acceso a su tienda SQLite. Cuando la aplicación se está ejecutando sin embargo usted debe ser capaz de acceder a la NSPersistentStoreCoordinator como lo haría normalmente. Sospecho que una prueba lado del dispositivo podría resultar en un fracaso para crear el coordinador almacén persistente de una de las API de fondo.

Otros consejos

En iOS 5 se puede utilizar cualquiera de ellas, pero todavía hay un retén para cada uno de ellos.

  1. NSFileProtectionCompleteUnlessOpen - El archivo se almacena en un formato codificado en el disco y debe abrirse mientras el dispositivo está desbloqueado. Una vez abierto, el archivo puede continuar teniendo acceso al archivo, normalmente, incluso si el usuario bloquea el dispositivo.

  2. NSFileProtectionCompleteUntilFirstUserAuthentication - El archivo se almacena en un formato codificado en el disco y no se puede acceder hasta después de que el dispositivo haya arrancado. Después de que el usuario desbloquea el dispositivo por primera vez, la aplicación puede acceder al archivo y seguir teniendo acceso a él, incluso si posteriormente el usuario bloquea el dispositivo.

Fuente: iOS Developer Library

Haga sus llamadas de acceso a archivos en el hilo principal - no es un método muy útil sobre NSObject que debe ayudarle a:)

// When you need to get the data from the file do this :
NSData *data = [self performSelectorInMainThread:@selector(getFileData:) withObject:filename waitUntilDone:YES];


// And somewhere else in your class have this method
- (NSData *)getFileData:(NSString *)filename {
    ...
    // Get data from file and return it
    ....
}

Espero que ayude.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top