diff --git a/DAO/Classes/RealmDAO/DAO/RealmDAO.swift b/DAO/Classes/RealmDAO/DAO/RealmDAO.swift index 155b074..c62f83c 100644 --- a/DAO/Classes/RealmDAO/DAO/RealmDAO.swift +++ b/DAO/Classes/RealmDAO/DAO/RealmDAO.swift @@ -19,7 +19,8 @@ open class RealmDAO: DAO { /// Translator for current `RLMEntry` and `RealmModel` types. private let translator: RealmTranslator private let configuration: Realm.Configuration - + /// In-memory Realm instance. + private var inMemoryRealm: Realm? // MARK: - Public @@ -285,7 +286,18 @@ open class RealmDAO: DAO { } private func realm() throws -> Realm { - return try Realm(configuration: configuration) + guard configuration.inMemoryIdentifier != nil else { + return try Realm(configuration: configuration) + } + + if let realm = inMemoryRealm { + return realm + } + + let realm = try Realm(configuration: configuration) + inMemoryRealm = realm + + return realm } }