[英]How to rename realm object in iOS
我在我们的 iOS 和 Android 应用程序中使用 realm。 出于某种原因,我想重命名我的 realm object 之一。
最初我们将其命名为 object Demo
,现在我想将其更改为RealmDemo
在 android 中,我们使用@RealmClass 注解实现了它
@RealmClass(name = "Demo")
open class RealmDemo : RealmObject() {
}
在 iOS 方面,我不确定我如何能像在 android 中那样做类似的事情。
class RealmDemo: Object {
override static func className() -> String {
"Demo"
}
}
我在上面尝试过^,但出现以下错误“由于未捕获的异常'RLMException'而终止应用程序,原因:'对象类型'Demo'不由领域管理'”
两件事情。
首先,您可以随意命名 object 并随时更改其名称。
然而,这是一个破坏性的变化,Realm 没有任何办法知道新命名的 object 与之前的 object“是同一个对象”。
如何处理取决于用例是什么:
其次,另一个重要的是 object 现在的名称是RealmDemo
,而之前的 object 是Demo
class RealmDemo: Object {
所以从技术上讲,它们是两个独立的对象。 对于 Realm,您完全放弃了 Demo object,这是一个破坏性的变化。 Demo 仍然存在,但未在您的代码中引用,因此会引发错误
在一个可能不相关的注释上,className function 引用了 Demo
override static func className() -> String {
"Demo"
}
但是 object 名称是 RealmDemo。
目前尚不清楚为什么className
function 存在,但它不是必需的或真正需要的。 请参阅对象的文档以了解它们的结构 - 它们可能需要主键
似乎 realm 不支持可可/ios的类名覆盖。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.