我试图转向Realm(
https://realm.io/)并遇到问题.如果我们正在处理存储大量记录的数据库,并且我们只想从某个偏移量中获取一定数量的记录,那么我们如何用realm来获取它.你知道,它可以通过sql或核心数据轻松完成.我们不想从数据库中获取所有内容,然后在内存中计算,因为它需要很长时间
解决方法
由于Realm在访问时从磁盘读取数据(甚至到属性级别),因此您不必担心从磁盘读取的数量超过必要的数量.因此,如果您只想在100之后访问接下来的10个对象,则只需跳过访问前100个对象即可.
例如:
let realm = Realm() let modelObjects = realm.objects(MyModel) // => Say there are 1000 items for i in 100..<110 { let itemAtIndex = modelObjects[i] // => Inferred to be of type `MyModel` itemAtIndex.someProperty // => Only at this point is data *just for that property* read from disk // Perform operations in memory here... } // At this point,only 10 objects were ever read from disk // and only the properties on those objects that were accessed.
我在这个例子中使用了Realm Swift,但是相同的概念适用于Realm Objective-C.