[英]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.