Sto usando la protezione dei file mediante l'attributo NSFileProtectionKey come questo:di sicurezza del file quando il dispositivo è bloccato e sfondo recuperare in iOS7
[[NSFileManager defaultManager] setAttributes:@{NSFileProtectionKey : NSFileProtectionComplete} ofItemAtPath:coreDataFilePath error:NULL];
Quindi, nessun file in tale percorso può essere aperto quando il dispositivo è bloccato codice di accesso. Il problema è che dalle app iOS7 può essere eseguito in background anche quando il dispositivo è bloccato. Durante l'esecuzione del genere CoreData [NSManagedObjectContext save:]
verrà effettuata con errore:
NSCocoaErrorDomain, 134030, The operation couldn’t be completed. (Cocoa error 134030.) { NSSQLiteErrorDomain = 23; NSUnderlyingException = "Updating max pk failed: authorization denied"; }
come gestire questo caso?
Riguardo "Scrivi i dati in un'altra posizione (utilizzando NSFileProtectionCompleteUnlessOpen) finché il dispositivo non viene sbloccato, quindi unisci. Questo è generalmente l'approccio preferito." Come archiviare i dati che devono essere scritti nei dati principali fino a quando l'utente non decide di sbloccare il dispositivo. – user3687
O scrivendo il formato di rete (spesso JSON). Oppure serializzare gli oggetti con NSCoding. In entrambi i casi, salvando in un file finché Core Data non viene sbloccato. –
Il salvataggio di un file non elaborato su disco non comporta un ulteriore rischio per la sicurezza dell'applicazione. Ad ogni modo, hai qualche suggerimento su come rilevare se i dati di base sono sbloccati. – user3687