2015-12-20 55 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