2016-06-14 3 views
0

Мой код здесь:realm encription, расшифровка файла Realm не удалась, что случилось?

RLMRealmConfiguration *configuration = [RLMRealmConfiguration defaultConfiguration]; 
NSString *filePath = [NSString stringWithFormat:@"%@",configuration.fileURL]; 
NSString *dateBaseName = @"aaa"; 
configuration.fileURL = [NSURL URLWithString:[[[filePath stringByDeletingLastPathComponent] 
               stringByAppendingPathComponent:dateBaseName] 
               stringByAppendingPathExtension:@"realm"]]; 
configuration.encryptionKey = [self getEncriptionKey]; 
[RLMRealmConfiguration setDefaultConfiguration:configuration]; 
NSError *err = nil; 
RLMRealm *realm = [RLMRealm realmWithConfiguration:configuration 
              error:&err]; 
if (!realm) { 
    NSLog(@"Error opening realm: %@", err); 
} 

но когда я перенастроить datebase, оказывается, что «Realm файл дешифрование не удалось», и приложение разбился.

и мой мигрирует код здесь:

RLMRealmConfiguration *configuration = [RLMRealmConfiguration defaultConfiguration]; 
configuration.schemaVersion = 3; 
configuration.encryptionKey = [self getEncriptionKey]; 
configuration.migrationBlock = migrationBlock; 
[configuration setDeleteRealmIfMigrationNeeded:YES]; 
[RLMRealmConfiguration setDefaultConfiguration:configuration]; 

помогите мне !!!

ответ

0

Когда вы выполняете свой код перехода?

Ваш код должен выглядеть следующим образом:

RLMRealmConfiguration *configuration = [RLMRealmConfiguration defaultConfiguration]; 

NSString *filePath = [NSString stringWithFormat:@"%@",configuration.fileURL]; 
NSString *dateBaseName = @"aaa"; 

configuration.fileURL = [NSURL URLWithString:[[[filePath stringByDeletingLastPathComponent] 
               stringByAppendingPathComponent:dateBaseName] 
               stringByAppendingPathExtension:@"realm"]]; 
configuration.encryptionKey = [self getEncriptionKey]; 
configuration.schemaVersion = 3; 
configuration.migrationBlock = migrationBlock; 

[RLMRealmConfiguration setDefaultConfiguration:configuration]; 

NSError *err = nil; 
RLMRealm *realm = [RLMRealm realmWithConfiguration:configuration 
              error:&err]; 
if (!realm) { 
    NSLog(@"Error opening realm: %@", err); 
} 

отметить также, что [configuration setDeleteRealmIfMigrationNeeded:YES]; удалит файл Realm в случае миграции необходима и миграция не будет выполнена.

Смежные вопросы