比较领域对象列表

时间:2017-07-18 11:28:40

标签: swift compare realm

我想将2个Realm对象列表相互比较,看它们是否相同。 这是对象的样子。

class ScheduleRealm: Object {
let scheduleList = List<Schedule>()
}

class Schedule: Object {
dynamic var startTime : Date = Date()
dynamic var endTime : Date = Date()
dynamic var name : String = ""   
}

当我打印2个列表时:

List<Schedule> (
[0] Schedule {
    startTime = 2017-07-03 16:00:00 +0000;
    endTime = 2017-07-03 18:00:00 +0000;
    name = Weights   Mon, 3 Jul 16:00 120m;
},
[1] Schedule {
    startTime = 2017-07-04 16:00:00 +0000;
    endTime = 2017-07-04 17:30:00 +0000;
    name = Weights   Tue, 4 Jul 16:00 90m;
},
[2] Schedule {
    startTime = 2017-07-10 01:30:00 +0000;
    endTime = 2017-07-10 04:30:00 +0000;
    name = Weights   Mon, 10 Jul 01:30 180m;
}
)
List<Schedule> (
[0] Schedule {
    startTime = 2017-07-03 16:00:00 +0000;
    endTime = 2017-07-03 18:00:00 +0000;
    name = Weights   Mon, 3 Jul 16:00 120m;
},
[1] Schedule {
    startTime = 2017-07-04 16:00:00 +0000;
    endTime = 2017-07-04 17:30:00 +0000;
    name = Weights   Tue, 4 Jul 16:00 90m;
},
[2] Schedule {
    startTime = 2017-07-10 01:30:00 +0000;
    endTime = 2017-07-10 04:30:00 +0000;
    name = Weights   Mon, 10 Jul 01:30 180m;
}
)

我尝试使用'=='或'isEqual',但即使列表相同,它仍会导致错误。 我该怎么做才能看出它们是否相同。

1 个答案:

答案 0 :(得分:1)

Realm会覆盖==函数,请参阅Realm object's Equatable is implementation

简而言之,您正在比较的两个列表可能被Realm认为不相同,因为它们不是Realm中的托管列表,也不是因为它们存储在不同的Realms中。如果是这种情况,您可以通过制作托管列表的非托管副本并将其与其他列表进行比较来避免这种情况。