我有一个在多个日期生成的Documents
列表。我需要出示带有文档的UITableView
,每个部分的日期必须不同。
我将在域上保存数千个Documents
,所以我试图找到一种方法将Documents
的{{1}}分组,而不会转储过滤出的结果。文档存储。
还可能会收到一个新文档,所以我不得不刷新整个表并将其再次转储到内存中,只是为了添加一个文档。
我找不到任何办法。我还考虑对结果进行分页,因此我在内存中有一个较小的列表要“处理”,但是Realm也无法分页,因此我不确定如何继续...
我的creationDate
如下:
Document
答案 0 :(得分:0)
我之前已经解决了这个问题:
方法1 [非常慢,但维护最少] : 在运行时,为文档对象的所有creationDate创建一个包含唯一startOfDay日期的数组。将此数组称为DateGroups。
在每个文档对象中,添加“ dateGroup”变量。
final class Document: Object {
@objc dynamic var createdByUserId: String?
@objc dynamic var creationDate: Date?
@objc dynamic var dateGroup: Date?
@objc dynamic var userId: String?
}
现在您可以从特定的dateGroup中拉出对象:
realm.objects(Document.self).filter("dateGroup = %@", Particular-Date-Group)
方法2 [非常快,但需要较高的维护] : 您可以像方法1中那样声明所有内容。 但是,您必须创建一个保持活动dateGroups的Realm对象。将其命名为DateGroup,并使其只有一个名为date或startOfDay的变量。
方法2比方法1快,但需要较高的维护,因为您必须跟踪应何时添加或删除dateGroup