gpt4 book ai didi

ios - Realm 一对多关系仅在 Swift 3 for iOS 中单方面工作

转载 作者:行者123 更新时间:2023-11-28 12:25:08 26 4
gpt4 key购买 nike

我有两个具有一对多关系的不同类:

class Car: Object {
dynamic var Id = NSUUID().uuidString
dynamic var Name : String = ""
dynamic var FuelCapacity : Int = 0

let FuelRecords = List<FuelRecord>()


override class func primaryKey() -> String? {
return "Id"
}


}

class FuelRecord: Object {

dynamic var Odometer : Float = 0.0
dynamic var LiterPrice : Float = 0.0
dynamic var Date = NSDate()
dynamic var CarObject : Car?

}

保存 FuelRecord 对象时,Fuelrecord 链接到 Car,但 CarObject 没有链接到 FuelRecord。

如您所见,汽车链接到 0 FuelRecords

Click here to view Cars Table in Realm Browser

但 FuelRecord 包含 Car 引用

Click here to view FuelRecords Table in Realm Browser

由于这个问题,我无法获取特定汽车的燃料记录。

这就是我将 FuelRecord 保存到数据库的方式。

fuelRecord.LiterPrice = Float(txtLiterPrice.text!)!
fuelRecord.Odometer = Float(txtOdometer.text!)!
fuelRecord.Total = Float(txtTotal.text!)!
fuelRecord.Volume = Float(txtVolume.text!)!
fuelRecord.IsPartial = switchPartial.isOn




let realm = try! Realm()

try! realm.write{
realm.add(fuelRecord)

谢谢!

最佳答案

一对多关系是单向的。要自动查找与汽车关联的所有 FuelRecords 并因此使关系成为双向关系,您应该使用反向关系。这可以通过 LinkingObjects 实现。

将您的 Car 类中的 FuelRecords 声明更改为以下内容:

let FuelRecords = LinkingObjects(fromType: FuelRecord.self, property: "CarObject")

可悲的是,Realm 浏览器仍然不会向您显示反向关系(至少对我来说是这样),但您将能够从代码中查询与汽车关联的所有 FuelRecords。

关于ios - Realm 一对多关系仅在 Swift 3 for iOS 中单方面工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43629667/

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