我正在学习在Swift上进行开发,很抱歉,如果我的问题看起来很愚蠢:D 在我的应用上,我需要3个对象:汽车,车站和Conso 汽车对象可以具有多个Conso 车站对象车有很多Conso Conso对象只能链接到一辆汽车和一个车站
以下是Realm对象的代码
Conso.swift
import Foundation
import RealmSwift
final class Conso : Object {
//var id: Int
@objc dynamic var idConso = ""
//... Some fields
@objc dynamic var data: NSData?
@objc dynamic var idCar = ""
@objc dynamic var station: Station? // Link to a Station Object
@objc dynamic var car: Car? // Link to a car Object
Car.swift
import Foundation
import RealmSwift
final class Car : Object {
//@objc dynamic var ID = 0
@objc dynamic var idCar = ""
//...some fields
@objc dynamic var data: NSData?
// Link to Conso object (Many-to-One)
let consos = LinkingObjects(fromType: Conso.self, property: "car")
Station.swift
import Foundation
import RealmSwift
import MapKit
final class Station : Object {
//@objc dynamic var ID = 0
@objc dynamic var idStation = ""
//...some fields
@objc dynamic var data: NSData?
// Link to Conso object (Many-to-One)
let consos = LinkingObjects(fromType: Conso.self, property: "station")
我使用以下代码片段将对象插入数据库:
// Create a Conso Object
let conso:Conso = Conso()
conso.idConso = "Conso-123454344"
if let textStationService = self.TextFieldStationService.text{
conso.nomStation = textStationService
conso.station?.nomStation = textStationService
}
if let textCPStationService = self.TextFieldCodePostal.text{
conso.CPStation = textCPStationService
self.station!.codePostal = textCPStationService
}
if let textVilleStationService = self.TextFieldStationServiceCPVille.text{
conso.villeStation = textVilleStationService
self.station!.ville = textVilleStationService
}
// A car object is received from another viewController
conso.car = self.car
let realm = try! Realm()
try! realm.write {
realm.add(conso)
realm.add(station!)
}
从另一个ViewController中,我得到了这个片段的结果 假设从另一个VC收到了汽车ID(idCar):
func listConso(){
let realm = try! Realm()
// Get the car from its id
self.car = realm.objects(Car.self).filter("idCar = %@",self.idCar).first
// Get Conso based on the searched car
self.consosData = realm.objects(Car.self).filter("idCar = %@",self.idCar).first?.consos.sorted(byKeyPath: "dateConso", ascending: false)
self.consos = Array((self.consosData)!)
self.tableViewConso.setEditing(false, animated: true)
self.tableViewConso.reloadData()
print("listConsop")
}
结果是我两次有很多行
谢谢您的帮助。