Skip to main content

How to limit the number of items in a fetch request

About 2 minSwiftSwiftUIArticle(s)bloghackingwithswift.comcrashcourseswiftswiftuixcodeappstore

How to limit the number of items in a fetch request 관련

SwiftUI by Example

Back to Home

How to limit the number of items in a fetch request | SwiftUI by Example

How to limit the number of items in a fetch request

Updated for Xcode 15

SwiftUI’s @FetchRequest property wrapper is great for making simple requests for objects, providing both sorting and filtering. But if you want to adjust the number of items you get back – perhaps to say “show me the first 10 items in my results” – then you need to do a little more work yourself.

First, create your @FetchRequest property without an initial value. For example, if we wanted to work with a “ProgrammingLanguage” entity we might use this:

@FetchRequest var languages: FetchedResults<ProgrammingLanguage>

And now create a custom initializer for your view that uses NSFetchRequest to build the exact request you want. Once you’re ready, you can put that into a regular FetchRequest and assign it directly to your property.

For example, if we wanted to read the first 10 programming languages without any sorting or filtering, we would use this:

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

    _languages = FetchRequest(fetchRequest: request)
}

Or if we wanted to have filtering, sorting, and row limiting we can do that too:

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)
}
Similar solutions…
How to create a Core Data fetch request using @FetchRequest | SwiftUI by Example

How to create a Core Data fetch request using @FetchRequest
How to filter Core Data fetch requests using a predicate | SwiftUI by Example

How to filter Core Data fetch requests using a predicate
How to add a badge to TabView items and List rows | SwiftUI by Example

How to add a badge to TabView items and List rows
Adding items to an order with @EnvironmentObject | SwiftUI by Example

Adding items to an order with @EnvironmentObject
How to add bar items to a navigation view | SwiftUI by Example

How to add bar items to a navigation view

이찬희 (MarkiiimarK)
Never Stop Learning.