【问题标题】:Realm not called in Swift没有在 Swift 中调用领域
【发布时间】:2018-06-23 18:32:49
【问题描述】:

我有一个使用以下代码的 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 {}

不确定是否缺少某些东西?

谢谢!

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

【问题讨论】:

    标签: ios swift database realm


    【解决方案1】:

    问题是您将objectTypes 设置为nil,因此没有模型类添加到您的领域。您应该简单地保留该输入参数,这将导致使用默认值,因此您项目中声明的所有 Object 子类都将添加到您的配置中。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-23
      相关资源
      最近更新 更多