Ho recentemente creato una nuova filiale e ho tentato di refactoring gran parte del mio codice per dare uno Realm
uno scatto su CoreData
. Ma finora non ho avuto fortuna a far funzionare il mio codice.RealmSwift: Realm su percorso già aperto con una diversa versione dello schema
In primo luogo, viene generata un'eccezione in shared_realm.cpp. La riga di codice che genera l'errore è:
if (realm->config().schema_version != config.schema_version && config.schema_version != ObjectStore::NotVersioned) {
throw MismatchedConfigException("Realm at path already opened with different schema version.");
}
Se mi salta sopra questa eccezione, si fermi sulla seconda riga di codice nel seguente:
class func getAllCategories() -> Results<Category> {
let realm = try! Realm()
let categories = realm.objects(Category)
return categories
}
e lancia questo messaggio di errore:
fatal error: 'try!' expression unexpectedly raised an error: Error Domain=io.realm Code=1 "Realm at path already opened with different schema version." UserInfo={NSLocalizedDescription=Realm at path already opened with different schema version., Error Code=1}
Sono completamente nuovo nel Regno, quindi qualsiasi aiuto è apprezzato. La mia comprensione dalla documentazione è che Realm()
è il modo corretto per accedere al database predefinito, che al momento è adatto ai miei scopi. All'inizio pensavo che forse un Reame doveva essere passato in giro, ma vedo dagli esempi online che questo non sembra essere il caso.
Ho pulito, modificato i simulatori e persino aggiornato Xcode. Ho anche tentato di commentare questa riga di codice in:
// FIXME - enable schema comparison
/*if (realm->config().schema != config.schema) {
throw MismatchedConfigException("Realm at path already opened with different schema");
}*/
inutilmente. Sentirsi abbastanza perso, quindi ogni direzione è apprezzata.
Si sta utilizzando un oggetto 'Configurazione' di Realm ovunque per configurare la configurazione predefinita per un Reame? Se è così, puoi postarlo qui? Inoltre, se stai apportando molte modifiche allo sviluppo all'oggetto 'Category', hai provato a eliminare il file Realm sul disco e a consentire a Realm di crearne uno nuovo? – TiM