gpt4 book ai didi

ios - 提取数据的 Realm 查询

转载 作者:行者123 更新时间:2023-11-29 01:05:31 24 4
gpt4 key购买 nike

我有 2 个 Realm 模型:

class CourseModel: Object {
dynamic var coursename = ""
dynamic var par3field = 0
dynamic var par4field = 0
dynamic var par5field = 0

let scoreModels: List<ScoresModel> = List<ScoresModel>()
override internal static func primaryKey() -> String? { return "coursename" }
}

class ScoresModel: Object {
dynamic var dateplayed = ""

var courseModel: CourseModel? {
return linkingObjects(CourseModel.self, forProperty: "scoreModels").first
}
}

应用程序用户将首先添加我使用 CourseModel 的新类(class)。当用户玩类(class)时,他们输入该类(class)的分数,我使用 ScoresModel,因此使用主键“类(class)名称”。

我用

查询 CourseModel
let realm = try Realm()
let results = realm.objects(CourseModel)
return results

结果如下

Results<CourseModel> (
[0] CourseModel {
coursename = First Course;
par3field = 4;
par4field = 10;
par5field = 4;
scoreModels = RLMArray <0x797a36d0> (
[0] ScoresModel {
dateplayed = Apr 5, 2016; },
[1] ScoresModel {
dateplayed = Mar 3, 2016; }
);
},
[1] CourseModel {
coursename = Second Course;
par3field = 4;
par4field = 10;
par5field = 4;
scoreModels = RLMArray <0x7a046f40> (
[0] ScoresModel {
dateplayed = Apr 5, 2016; }
);
}
)

ScoresModel 产生类似的结果,但没有 CourseModel 数据。ScoresModel 中有很多数据,为了简短起见,我在这里只显示了“dateplayed”。

我的问题是这样的;当我从 Realm 中提取数据时,如何访问特定字段来处理该数据,即如何获取 par5field 数据以对其进行计算,以及第二个问题如何获取 ScoreModels 数据,例如“dateplayed”以列出表格中的日期?

最佳答案

当您对 Realm 执行查询时,结果将返回到一个 Results 对象中,该对象的行为与数组完全一样。因此,您需要遍历每个对象以访问每个对象所需的属性。

要回答您的第一个问题,访问 par5field 属性(仅从第一个对象):

let firstObject? = results.first
let par5field = firstObject.par5field
// Do calculations with it

对于你的第二个问题,scoreModels 只是一个标准的数组对象,所以你可以像插入标准的 Array 对象一样将它的值插入到 TableView 中。

如果您想列出所有 ScoreModel 对象,无论它们属于哪个 CourseModel 对象,您都可以执行 Realm 查询以直接获取它们。

let realm = try! Realm()
let results = realm.objects(ScoreModel)
return results

关于ios - 提取数据的 Realm 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36430106/

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