2 Star 22 Fork 10

小弟调调/swiftui-example

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
README.md 1.57 KB
一键复制 编辑 原始数据 按行查看 历史

如何限制获取请求中的项目数?

SwiftUI@FetchRequest 属性包装器非常适合对对象进行简单的请求,同时提供排序和过滤功能。 但是,如果您要调整退回的商品数量-也许要说“向我显示结果中的前10个商品”,那么您需要自己做更多的工作。

首先,创建没有初始值的 @FetchRequest 属性。 例如,如果我们想使用 ProgrammingLanguage 实体,则可以使用以下方法:

@FetchRequest var languages: FetchedResults<ProgrammingLanguage>

现在,为您的视图创建一个自定义初始化程序,该初始化程序使用 NSFetchRequest 来构建所需的确切请求。 准备就绪后,您可以将其放入常规的 FetchRequest 中,并将其直接分配给您的媒体资源。

例如,如果我们想在不进行任何排序或过滤的情况下阅读前 10 种编程语言,则可以使用以下代码:

init() {
    let request: NSFetchRequest<ProgrammingLanguage> = ProgrammingLanguage.fetchRequest()
    request.fetchLimit = 10

    _languages = FetchRequest(fetchRequest: request)
}

或者,如果我们想要过滤,排序和行限制,我们也可以这样做:

init() {
    let request: NSFetchRequest<ProgrammingLanguage> = ProgrammingLanguage.fetchRequest()
    request.predicate = NSPredicate(format: "active = true")

    request.sortDescriptors = [
        NSSortDescriptor(keyPath: \ProgrammingLanguage.name, ascending: true)
    ]

    request.fetchLimit = 10
    _languages = FetchRequest(fetchRequest: request)
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Swift
1
https://gitee.com/jaywcjlove/swiftui-example.git
git@gitee.com:jaywcjlove/swiftui-example.git
jaywcjlove
swiftui-example
swiftui-example
main

搜索帮助