---
title: "startContentEditing(with:placeholderImage:)"
framework: photosui
role: symbol
role_heading: Instance Method
path: "photosui/phcontenteditingcontroller/startcontentediting(with:placeholderimage:)"
---

# startContentEditing(with:placeholderImage:)

Tells your extension that asset data is available for editing.

## Declaration

```swift
func startContentEditing(with contentEditingInput: PHContentEditingInput, placeholderImage: UIImage)
```

```swift
func startContentEditing(with contentEditingInput: PHContentEditingInput, placeholderImage: NSImage)
```

## Parameters

- `contentEditingInput`: An object that describes the asset to be edited.
- `placeholderImage`: An image representing the current state of the asset suitable for temporarily displaying in your extension’s UI.

## Discussion

Discussion Photos calls this method before your extension view controller’s view appears. For a photo asset, use the displaySizeImage property of the provided PHContentEditingInput object to perform editing in your extension’s UI. If your extension returned true from the canHandle(_:) method, this image represents the previous version of the asset—you need to use the adjustmentData object to reconstruct the last edit made to the asset. Because asynchronously rendering the results of the previous edit may take some time, you can display the placeholderImage until your extension is ready to begin editing. You don’t need to use the content editing input’s fullSizeImageURL property until the user has finished editing and you need to render final output. For a video asset, use the PHContentEditingInput object to retrieve AVFoundation objects for editing audio and video content.

## See Also

### Performing an Edit

- [finishContentEditing(completionHandler:)](photosui/phcontenteditingcontroller/finishcontentediting(completionhandler:).md)
