gpt4 book ai didi

arrays - Realm swift : manipulate arrays with realm object

转载 作者:行者123 更新时间:2023-11-28 07:37:46 24 4
gpt4 key购买 nike

我在应用开发中遇到了一个问题。

我有 2 个对象,汽车和 Conso。

康索:

import Foundation
import RealmSwift

final class Car : Object {

//@objc dynamic var ID = 0
@objc dynamic var idCar = ""
@objc dynamic var creadtedAt = NSDate()
@objc dynamic var modifiedAt = NSDate()
@objc dynamic var marque = ""
@objc dynamic var modele = ""
@objc dynamic var immatriculation = ""
@objc dynamic var couleur = ""
@objc dynamic var pseudo = ""
@objc dynamic var kilometrage = ""
@objc dynamic var commentaire = "j"
@objc dynamic var reservoir = ""
@objc dynamic var dateImmat = ""
@objc dynamic var motorisation = ""
@objc dynamic var dateAchat = Date()
@objc dynamic var numeroSerie = ""
@objc dynamic var pressionPneu = ""
@objc dynamic var data: NSData?

}

和汽车:

import Foundation
import RealmSwift

final class Conso : Object {

//var id: Int
@objc dynamic var idConso: String?
@objc dynamic var dateConso = Date()
@objc dynamic var createdAt = NSDate()
@objc dynamic var carName: String?
@objc dynamic var carKilometrage: String?
@objc dynamic var carKmParcourus: String?
@objc dynamic var nomStation: String?
@objc dynamic var adresseStation: String?
@objc dynamic var CPStation: String?
@objc dynamic var villeStation: String?
@objc dynamic var typeCarburant: String?
@objc dynamic var conso: String?
@objc dynamic var volConso: String?
@objc dynamic var prix: String?
@objc dynamic var coutLitre: String?
@objc dynamic var commentaire: String?
@objc dynamic var data: NSData?

}

Conso 是一个依赖car 的对象,所以carName 是Conso 对象的一部分。

现在我想为每辆车显示最大“Kilométrage”

所以在我的 tableView 中,我放了这段代码:

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "tdbCarCell", for: indexPath) as! tdbCarsTableViewCell
print("tableView -> cellForRowAt")
// Configure the cell...
let modele = self.carObjects[indexPath.row].modele
let pseudo = self.carObjects[indexPath.row].pseudo
let km = self.carObjects[indexPath.row].kilometrage

let consoData = realm.objects(Conso.self).filter("carName = '" + pseudo + "'")
cell.labelCarPseudo?.text = pseudo
cell.labelCarModele?.text = modele
cell.labelkmParcourusDepuisAchat?.text = km

return cell
}

我得到了 carName,它是字段“Pseudo”,我在 RealmObject 上查询以获取每辆车的公里数数组。

我想检索“Kilometrage”的最大值。该字段定义为字符串,但它是一个整数。

你能帮我用这个数据得到“公里数”的最大值吗?

let consoData = realm.objects(Conso.self).filter("carName = '" + pseudo + "'")

我不知道如何检索数组上的数据。

感谢您的帮助。

最佳答案

好吧,如果您要对某个属性进行数学运算(主要针对查询),那么将其存储为 String 是没有意义的。

首先,将您的属性更改为整数:@objc dynamic var kilometrage = 0

然后,I don't think you can retrieve - 通过查询 - 具有任意属性最大值的对象。

考虑到这一点,您需要获取所有对象,然后使用max(by:)过滤

if let highestKmCar = realm.objects(Car.self).max(by: { $0.kilometrage > $1.kilometrage}) {
print(highestConsoByKm.kilometrage)
//Do what you have to do...
}

关于arrays - Realm swift : manipulate arrays with realm object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52977238/

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