---
title: "init(fetchDescriptor:sectionBy:modelContext:isolation:)"
framework: swiftdata
role: symbol
role_heading: Initializer
path: "swiftdata/resultsobserver/init(fetchdescriptor:sectionby:modelcontext:isolation:)-7ms14"
---

# init(fetchDescriptor:sectionBy:modelContext:isolation:)

Creates a new observer with the given fetch descriptor, a String section key path, and a model context.

## Declaration

```swift
convenience init(fetchDescriptor: FetchDescriptor<Element> = FetchDescriptor<Element>(), sectionBy: KeyPath<Element, String>, modelContext: ModelContext, isolation: isolated (any Actor)? = #isolation) throws
```

## Parameters

- `fetchDescriptor`: The descriptor defining the fetch criteria.
- `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 fetch descriptor

- [init(fetchDescriptor:modelContext:isolation:)](swiftdata/resultsobserver/init(fetchdescriptor:modelcontext:isolation:).md)
- [init(fetchDescriptor:sectionBy:modelContext:isolation:)](swiftdata/resultsobserver/init(fetchdescriptor:sectionby:modelcontext:isolation:)-9kg1q.md)
- [init(fetchDescriptor:modelContainer:isolation:)](swiftdata/resultsobserver/init(fetchdescriptor:modelcontainer:isolation:).md)
- [init(fetchDescriptor:sectionBy:modelContainer:isolation:)](swiftdata/resultsobserver/init(fetchdescriptor:sectionby:modelcontainer:isolation:)-4tuzk.md)
- [init(fetchDescriptor:sectionBy:modelContainer:isolation:)](swiftdata/resultsobserver/init(fetchdescriptor:sectionby:modelcontainer:isolation:)-7wa5c.md)
