领域查询提取数据

时间:2016-04-05 15:02:56

标签: ios swift realm

我有2个领域模型:

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

应用用户将首先添加一个我使用CourseModel的新课程。当用户播放课程时,他们输入该课程的分数,我使用ScoresModel,因此主键'coursename'。

我用

查询CourseModel
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; }
        );
    }
)

并产生以下结果

{{1}}

ScoresModel产生类似的结果但没有CourseModel数据。 ScoresModel里面有很多数据,我只是在这里显示'dateplayed'以保持简短。

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

1 个答案:

答案 0 :(得分:1)

当您对Realm执行查询时,结果将在text-align:center对象中返回,该对象的行为与数组完全相同。因此,您需要遍历每个对象以访问每个对象所需的属性。

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

par5field

对于第二个问题,let firstObject? = results.first let par5field = firstObject.par5field // Do calculations with it 只是一个标准数组对象,因此您可以像将标准scoreModels对象一样将值插入到表视图中。

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

CourseModel