---
title: "typeDescriptionDataSource(for:invalidator:)"
framework: photosui
role: symbol
role_heading: Instance Method
path: "photosui/phprojectextensioncontroller/typedescriptiondatasource(for:invalidator:)"
---

# typeDescriptionDataSource(for:invalidator:)

Fetches the type description data source to provide the user with more information about the project extension category.

## Declaration

```swift
optional func typeDescriptionDataSource(for category: PHProjectCategory, invalidator: any PHProjectTypeDescriptionInvalidator) -> any PHProjectTypeDescriptionDataSource
```

## Parameters

- `category`: The category in which the user selected the extension.
- `invalidator`: An object used to invalidate information returned from the data source.

## Discussion

Discussion Extensions can define any number of project types to support. The types appear to users as choices in the Photos app upon initial project creation. To enable this entry point into the extension, include the key/value pair PHProjectExtensionDefinesProjectTypes: YES in the Xcode project’s Info.plist file. Once enabled, Photos asks your extension for its list of supported project types. The option the user selects is passed to the extension as an attribute of PHProjectInfo.

## See Also

### Tracking the Project Extension Life Cycle

- [beginProject(with:projectInfo:completion:)](photosui/phprojectextensioncontroller/beginproject(with:projectinfo:completion:).md)
- [finishProject(completionHandler:)](photosui/phprojectextensioncontroller/finishproject(completionhandler:).md)
- [resumeProject(with:completion:)](photosui/phprojectextensioncontroller/resumeproject(with:completion:).md)
