---
title: "init(filterBy:sortBy:sectionBy:modelContext:isolation:)"
framework: swiftdata
role: symbol
role_heading: Initializer
path: "swiftdata/resultsobserver/init(filterby:sortby:sectionby:modelcontext:isolation:)-gsuz"
---

# init(filterBy:sortBy:sectionBy:modelContext:isolation:)

Creates a new observer with individual filter and sort criteria, a String section key path, and a model context.

## Declaration

```swift
convenience init(filterBy: Predicate<Element>? = nil, sortBy: [SortDescriptor<Element>]? = nil, sectionBy: KeyPath<Element, String>, modelContext: ModelContext, isolation: isolated (any Actor)? = #isolation) throws
```

## Parameters

- `filterBy`: An optional predicate to filter the results.
- `sortBy`: An optional array of sort descriptors to order the results.
- `sectionBy`: A key path on the element type that returns the section name.
- `modelContext`: The model context to fetch from and observe for changes.

## Discussion

Discussion note: An error if the initial fetch fails.

## See Also

### Creating a results observer with a predicate

- [init(filterBy:sortBy:modelContext:isolation:)](swiftdata/resultsobserver/init(filterby:sortby:modelcontext:isolation:).md)
- [init(filterBy:sortBy:sectionBy:modelContext:isolation:)](swiftdata/resultsobserver/init(filterby:sortby:sectionby:modelcontext:isolation:)-4ainb.md)
- [init(filterBy:sortBy:modelContainer:isolation:)](swiftdata/resultsobserver/init(filterby:sortby:modelcontainer:isolation:).md)
- [init(filterBy:sortBy:sectionBy:modelContainer:isolation:)](swiftdata/resultsobserver/init(filterby:sortby:sectionby:modelcontainer:isolation:)-5ufvn.md)
- [init(filterBy:sortBy:sectionBy:modelContainer:isolation:)](swiftdata/resultsobserver/init(filterby:sortby:sectionby:modelcontainer:isolation:)-9lfy0.md)
