gpt4 book ai didi

ios - 是否可以在 Realm 迁移中重命名和更改属性的数据类型

转载 作者:行者123 更新时间:2023-11-28 20:49:56 25 4
gpt4 key购买 nike

我目前有一个属性为 Double 的对象我想把它改成 Listdoubles .

更改 price:Double 的最佳方法是什么?至 prices = List<Double>()基于以下代码?

是否可以在 Realm 迁移中重命名和更改属性的数据类型?如果不是,在这种情况下通常会做什么,我是否需要治疗 prices作为新属性并删除属性 price然后手动遍历 Realm 中的所有项目以进行更改?

迁移前——我目前拥有的

class Item:Object{
@objc dynamic var itemName:String = "General"
@objc dynamic var price:Double = 0
}

迁移后——迁移后我想要什么

class Item:Object{
@objc dynamic var itemName:String = "General"
let prices = List<Double>()
}

迁移

以下迁移不起作用。我怎样才能修改它以使其工作?

/// Schema 1:
Realm.Configuration.defaultConfiguration = Realm.Configuration(
schemaVersion: 1,
migrationBlock: { migration, oldSchemaVersion in
if (oldSchemaVersion < 1) {
migration.renameProperty(onType: Item.className(), from: "price", to: "prices")
}
})

最佳答案

试试这个:

Realm.Configuration.defaultConfiguration = Realm.Configuration(
schemaVersion: 1,
migrationBlock: { migration, oldSchemaVersion in
if (oldSchemaVersion < 1) {
migration.enumerateObjects(ofType: Person.className()) { oldObject, newObject in
// Append price value to new prices list
let price = oldObject!["price"] as! Double
newObject!["prices"] = [price]
}
}
})

关于ios - 是否可以在 Realm 迁移中重命名和更改属性的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59081225/

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