gpt4 book ai didi

ios - RealmSwiftObject 不受 Realm 管理。获取带有返回类的对象

转载 作者:行者123 更新时间:2023-11-29 05:18:51 29 4
gpt4 key购买 nike

enum DummyEnum {
case spiderMan
case anotherMan
case tanos
case duppy

var associatedClass: Object.Type {
switch self {
case .spiderMan:
return WebEntity.self
default:
return IronManEntity.self
}
}
}

realm.objects(DummyEnum().spiderMan.associatedClass) // returns crash
realm.objects(WebEntity.self) // done well

Terminating app due to uncaught exception 'RLMException', reason: 'Object type 'RealmSwiftObject' is not managed by the Realm. If using a custom objectClasses / objectTypes array in your configuration, add RealmSwiftObject to the list of objectClasses / objectTypes.'

为什么会发生崩溃以及如何解决?我需要一个枚举变量来将 Realm 对象与枚举案例关联起来。

最佳答案

该代码只需进行一项更改即可为我工作 - 我使用 DogClass 和 PersonClass 进行测试,因此我有一个像您一样的类枚举

enum realmClasses {
case dog
case person

var associatedClass: Object.Type {
switch self {
case .dog:
return DogClass.self
case .person:
return PersonClass.self
}
}
}

然后在一个函数中读取所有的狗

let realm = try! Realm()
let dogResults = realm.objects(realmClasses.dog.associatedClass)
for dog in dogResults {
print(dog)
}

区别在于枚举的访问方式。你有这个

DummyEnum().spiderMan.associatedClass
^^

我有这个,注意到没有 () 因为我的实现不需要枚举

realmClasses.dog.associatedClass

哦 - 我的 DogClass 和 PersonClass 看起来像这样

class DogClass: Object {
@objc dynamic var dog_id = NSUUID().uuidString
@objc dynamic var dog_name = ""

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

关于ios - RealmSwiftObject 不受 Realm 管理。获取带有返回类的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58885481/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com