首页 > 解决方案 > 批量读取领域数据时如何从内存中卸载对象

问题描述

以下是 Realm 团队提供的用于读取整个结果集子集的代码示例(快速):

// Loop through the first 5 Dog objects
// restricting the number of objects read from disk
let dogs = try! Realm().objects(Dog.self)
for i in 0..<5 {
    let dog = dogs[i]
    // ...
}

参考:https ://realm.io/docs/swift/latest/ (限制结果)

现在我知道当我们从领域中读取对象时会加载它们,我对领域如何在我们不断进行的过程中从内存中卸载它们感到有点困惑。例如,如果我的查询返回 100 个对象作为结果集并且我读取了前 10 个对象,那么在用户交互时我读取了接下来的 10 个对象,依此类推。现在,以前在内存中读取的对象会发生什么。在这种情况下,我如何控制内存使用情况,因为我可能想在阅读较新的子集时卸载以前的子集。

我的猜测是我可能需要使旧领域无效并建立新连接以再次获取结果集并从新偏移量再次读取。无效可能会卸载之前读取的所有内容。请建议。

谢谢!

标签: realmrealm-mobile-platform

解决方案


推荐阅读