ios 如何向领域对象添加新属性?

yh2wf1be  于 8个月前  发布在  iOS
关注(0)|答案(3)|浏览(122)

我正在尝试向Realm对象UserDetails添加一个新属性。下面是我的尝试:

class CustomerDetails: Object {
   dynamic var customer_id = 0
   dynamic var customer_name = ""
}

字符串
现在我需要添加一个新的属性“company_name”到前面已经创建的对象UserDetails。如何添加一个新的到现有的Realm对象?

643ylb08

643ylb081#

有两种方法:
1.只需从模拟器中删除您的应用程序并重新运行它。每次更改Realm对象的属性时,现有数据库就会与新数据库不兼容。只要您仍处于开发阶段,您可以简单地从模拟器/设备中删除应用程序并重新启动它。
1.在AppDelegate的dispensshLaunchWithOptions方法中编写以下代码:
第一个月
我建议你遵循第二条。

v09wglhw

v09wglhw2#

您只需将属性添加到Realm模型中,但是必须提供迁移,以便将存储的数据更新为新格式。
这包括在您的Realm.Configuration中设置一个schemaVersion,它告诉Realm架构已更改,并提供一个migrationBlock,它将现有对象的新属性重新命名(可能只是设置一个空字符串)。在应用程序的下一次启动时,Realm将自动运行迁移,从而将存储的数据更新到新架构。

jutyujz0

jutyujz03#

这对我来说很有效。
每次添加删除属性时,请升级架构版本(+1)。领域本身会迁移。

func migrateRealm() {
    Realm.Configuration.defaultConfiguration = Realm.Configuration(schemaVersion: 5)
}

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    migrateRealm()
    return true
}

字符串

相关问题