Ho un problema con SQLCipher crittografia db e CoreData: Quando utilizzo il coordinatore di archivio persistente con SQLCipher, si blocca sempre con una relazione di errore uno-a-molti dopo la prima app rilancio. Così quando lancio la prima volta l'app, creo NSManagedObjects con le relazioni, quindi, quando salvi db e riapri l'app, si blocca quando provo ad accedere a queste relazioni. Senza SQLCipher tutto funziona correttamente.Problema SQLCipher e CoreData: CoreData non è riuscito a risolvere un errore per
Qui è il codice per SQLCipher persistente negozio di inizializzazione:
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
if (!_persistentStoreCoordinator) {
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"MyApp.sqlite"];
NSDictionary *options = @{EncryptedStorePassphraseKey: @"MyApp",
EncryptedStoreDatabaseLocation: storeURL};
NSError *error;
_persistentStoreCoordinator = [EncryptedStore makeStoreWithOptions:options managedObjectModel:[self managedObjectModel] error:&error];
if (error) {
NSLog(@"%@", error);
}
}
return _persistentStoreCoordinator;
}
codice in cui creo NSManagedObject:
- (id)createObjectWithClassName:(NSString *)name
{
NSManagedObject *object = [[NSClassFromString(name) alloc] initWithEntity:[NSEntityDescription entityForName:name inManagedObjectContext:self.context] insertIntoManagedObjectContext:self.context];
return object;
}
Che aspetto ha il codice che crea gli oggetti gestiti? –
@TomHarrington Ho aggiornato il post con NSManagedObject codice di creazione –
link utile: https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/Articles/cdTroubleshooting.html – Bhushan