2015-12-20 48 views
2

我想在我的新项目中使用Realm。 但我有兴趣:Realm for iOS。惰性数据加载?

我有10K MyType的对象。 而我想过滤并只显示最近的10个。

将他们全部移到内存来操作/过滤它们吗? 'realm.objects(MyType).filter(...)' - 我只是担心10k对象,并且他们的数据会在应用内存中乱扔垃圾,以防上述查询。

不是?没关系?

回答

1

当你过滤对象时,你的查询是在一个C++ DSL中构造的,它被高效地评估,引入一些优化来根据具体属性类型快速运行它。 当您从结果中检索每个对象时,由绑定实例化访问器对象。所以在你的情况下,只有前10个对象。

+0

好的,谢谢。次要的:如果我有其他项目的List <>,并且调用持有这个List的对象的.description,我可以在日志中看到所有这些项目。这是否意味着他们的数据在打印描述时被请求? – bronenos

+0

是的,数据在访问时即刻被提取。但是你只会看到前100个对象。如果应该有更多的对象,你会在最后看到一个输出,告诉你还有多少被跳过。 – marius

+0

因此,如果我的对象具有“姓名”作为字符串和“子女”作为列表,并且我只想访问它的名字,那么在我访问该列表中的任何孩子之前,孩子是不会被提取的? :) – bronenos