【发布时间】:2019-05-28 11:10:50
【问题描述】:
我正在尝试限制我的 Realm 查询的结果。如果我有一百万条记录并且我调用 Swift prefix 函数,它会触及所有百万条记录吗?
这是我想要做的:
let objects = realm.objects(BookRealmObject.self)
.sorted(byKeyPath: "createdAt", ascending: false)
let items: [BookType] = {
guard let limit = request.limit, limit > 0 else {
return objects.map { Book(from: $0) }
}
return objects.prefix(limit).map { Book(from: $0) }
}()
从prefix 返回的类型是Slice<Results<Element>>。无论调用者是否请求限制,我都需要将其转换为普通对象以传递给不同的线程。
这是处理此问题的正确方法,还是有更优化、更简洁的方法?
【问题讨论】: