Ios 未在Swift中调用的域

Ios 未在Swift中调用的域,ios,swift,database,realm,Ios,Swift,Database,Realm,我有一个realmService单例,它使用以下代码。但是,当我请求它时,它没有从homeController调用 var realmService = RealmService.shared.realm class RealmService { static let shared = RealmService() lazy var realm: Realm = { let realm = try! Realm(configuration: config) print("R

我有一个realmService单例,它使用以下代码。但是,当我请求它时,它没有从homeController调用

var realmService = RealmService.shared.realm

class RealmService {

static let shared = RealmService()

lazy var realm: Realm = {
    let realm = try! Realm(configuration: config)
    print("Realm set up")
    return realm
}()

lazy private var realmURL: URL = {
    let appDir = try FileManager.default.url(for: .applicationSupportDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
    let url = appDir.appendingPathComponent("TEST.realm")
    return url
}()

lazy private var config: Realm.Configuration = {
    return Realm.Configuration(
        fileURL: self.realmURL,
        inMemoryIdentifier: nil,
        syncConfiguration: nil,
        encryptionKey: nil,
        readOnly: false,
        schemaVersion: 1,
        migrationBlock: nil,
        deleteRealmIfMigrationNeeded: false,
        objectTypes: nil
    )
}()
}
当模型调用以下方法时,我不会得到打印语句:

    print("Calling realm service")
    if let profile = realmService.objects(Profile.self).filter(predicate).last {}
不确定是否有东西丢失了

谢谢


编辑:删除外部方法和扩展调用以简化问题。

问题在于您将
对象类型设置为
nil
,因此不会向您的领域添加任何模型类。您只需省略输入参数,这将导致使用默认值,因此项目中声明的所有
Object
子类都将添加到配置中

实际上,您不应该将
nil
传递给任何您不想为其指定特定值的输入参数,而是应该忽略这些输入参数,让它们采用默认值

return Realm.Configuration(
    fileURL: self.realmURL,
    readOnly: false,
    schemaVersion: 1,
    deleteRealmIfMigrationNeeded: false
)