Я учусь разрабатывать на Swift, извините, если мои вопросы кажутся глупыми: D В моем приложении мне нужно 3 объекта: Car, Station и Conso. У объекта Car может быть много Conso A Station У объекта автомобиля много Conso A ConsoОбъект может быть связан только с одним Автомобилем и одной Станцией
Вот коды для объектов Королевства
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 я получаю результаты с этим фрагментом, предполагаемым, что автомобильid (idCar) получен от другого VC:
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")
}
В результате у меня много строк дважды
Спасибо за вашу помощь.