Завершение работы приложения из-за неперехваченного исключения «RLMException», причина: «Предоставленная версия схемы 3 меньше последней установленной версии 4.» - PullRequest
0 голосов
/ 13 июля 2020

Я только начал работать с Realm для ios. На панели инструментов mongoDB Atlas я использовал их образец набора данных и создал схему, которую я использовал в своем приложении ios, чтобы попытаться протестировать получение данных из базы данных. Позже я импортировал свой собственный набор данных и создал новую схему. Я удалил старые схемы из ios и заменил их своей собственной схемой данных. Проблема теперь в том, что когда я пытаюсь запустить ios, приложение выдает ошибку

Завершение работы приложения из-за неперехваченного исключения 'RLMException', причина: 'Предоставленная версия схемы 3 меньше последней установленной версии 4. '

Я нашел принятый ответ в этом вопросе и выполнил его. Как мне запустить миграцию до того, как приложение начнет запускать код?

вот мой AppDelegate

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

        // Inside your application(application:didFinishLaunchingWithOptions:)

        let config = Realm.Configuration(
            // Set the new schema version. This must be greater than the previously used
            // version (if you've never set a schema version before, the version is 0).
            schemaVersion: 4,

            // Set the block which will be called automatically when opening a Realm with
            // a schema version lower than the one set above
            migrationBlock: { migration, oldSchemaVersion in
                // We haven’t migrated anything yet, so oldSchemaVersion == 0
                if (oldSchemaVersion < 4) {
                    
                    migration.enumerateObjects(ofType: Item.className()) { oldObject, newObject in
                        // No-op.
                        // dynamic properties are defaulting the new column to true
                        // but the migration block is still needed
                    }
              
                }
        })

        // Tell Realm to use this new configuration object for the default Realm
        Realm.Configuration.defaultConfiguration = config

        // Now that we've told Realm how to handle the schema change, opening the file
        // will automatically perform the migration
        do {
            _ = try Realm()
        } catch let _ as NSError {
            // print error
        }


        return true
    }

Я изменил свою версию схемы на 3 и 4, но по-прежнему получаю ту же ошибку? Как я могу это исправить ? любая помощь будет оценена

...