Не удалось расшифровать файл царства, что не так?
Мой код здесь:
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);
}
но при переносе базы данных появляется сообщение "Ошибка расшифровки файла области", и приложение падает.
и мой код переноса здесь:
RLMRealmConfiguration *configuration = [RLMRealmConfiguration defaultConfiguration];
configuration.schemaVersion = 3;
configuration.encryptionKey = [self getEncriptionKey];
configuration.migrationBlock = migrationBlock;
[configuration setDeleteRealmIfMigrationNeeded:YES];
[RLMRealmConfiguration setDefaultConfiguration:configuration];
Помоги мне!!!
1 ответ
Когда вы выполняете код миграции?
Ваш код должен выглядеть так:
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, если миграция необходима и миграция не будет выполнена.