---
title: "init(fetchDescriptor:sectionBy:modelContainer:isolation:)"
framework: swiftdata
role: symbol
role_heading: Initializer
path: "swiftdata/resultsobserver/init(fetchdescriptor:sectionby:modelcontainer:isolation:)-4tuzk"
---

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

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

## Declaration

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

## Parameters

- `fetchDescriptor`: The descriptor defining the fetch criteria.
- `sectionBy`: A key path on the element type that returns an optional section name.
- `modelContainer`: The model container from which a new context will be created.

## 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:)-7ms14.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:)-7wa5c.md)
