首页 > 解决方案 > 尝试访问配置时领域崩溃

问题描述

我将 Object 类添加到 Aps 和 Alert 类中,现在应用程序在尝试访问 Realm 配置时崩溃并出现错误:

线程 1:异常:“无效的类子集列表:\n- 'PushNotification.aps' 链接到类 'Aps',领域管理的类列表中缺少该类”

我试图提高架构版本,完全删除派生数据,删除应用程序 - 没有任何帮助。

领域配置文件

struct RealmGatewayImp: RealmGateway {
  let configuration: Realm.Configuration

  private init(config: Realm.Configuration) {
    configuration = config
  }

  var realm: Realm {
    try! Realm(configuration: configuration)
  }

  // MARK: - Push notification
  // The app crashes here 
  private static let pushConfig = Realm.Configuration(
    fileURL: try! Path.inSharedContainer("pushNotifications.realm"),
    schemaVersion: 1,
    deleteRealmIfMigrationNeeded: true,
    objectTypes: [PushNotification.self])

  public static var push: RealmGatewayImp = {
    RealmGatewayImp(config: pushConfig)
  }()
}

家长班

@objcMembers
final class PushNotification: Object, Codable {
  dynamic var accCodeIso: String?
  dynamic var account: String?
  dynamic var accType: String?
  dynamic var amount: String?
  dynamic var aps: Aps?
  dynamic var commentary: String?
  dynamic var corrAccCodeIso: String?
  dynamic var corrAccount: String?
  dynamic var corrAccType: String?
  dynamic var date: Date?
  dynamic var docType: String?
  dynamic var id: String?
  dynamic var payAmount: String?

  override static func primaryKey() -> String? {
    "id"
  }
}

参数类别

@objcMembers
final class Aps: Object, Codable {
  dynamic var alert: Alert?
}

@objcMembers
final class Alert: Object, Codable {
  dynamic var body: String?
  dynamic var title: String?
}

标签: iosswiftrealm

解决方案


如果您要指定 Realm 管理的对象,它需要是一个完整的列表。代替

objectTypes: [PushNotification.self])

尝试

objectTypes: [PushNotification.self, Aps.self, Alert.self])

推荐阅读