---
title: QCComposition
framework: quartz
role: symbol
role_heading: Class
path: quartz/qccomposition
---

# QCComposition

The QCComposition class represents a Quartz Composer composition that either:

## Declaration

```swift
class QCComposition
```

## Overview

Overview comes from the system-wide composition repository  (/Library/Compositions and ~/Library/Compositions) where it can be accessed by any application through the methods of the QCCompositionRepository class is created from an arbitrary source (typically a file on disk) using one of its methods This class cannot be subclassed. A QCComposition object has the following information associated with it and that you can obtain by using the appropriate method of the QCComposition class: Attributes include the name and description of the composition, copyright information, and whether or not its provided by macOS (built-in). The protocols that the composition conforms to. A composition protocol  defines a set of required and optional input parameters and output results. Many methods of the QCRenderer, QCCompositionLayer, and QCView classes take a QCComposition object as a parameter.

## Topics

### Creating a Composition

- [init(file:)](quartz/qccomposition/init(file:).md)
- [init(data:)](quartz/qccomposition/init(data:).md)

### Getting Information About a Composition

- [attributes()](quartz/qccomposition/attributes().md)
- [protocols()](quartz/qccomposition/protocols().md)
- [identifier()](quartz/qccomposition/identifier().md)

### Getting Port Keys

- [inputKeys()](quartz/qccomposition/inputkeys().md)
- [outputKeys()](quartz/qccomposition/outputkeys().md)

### Constants

- [Attribute Keys](quartz/attribute-keys.md)
- [Composition Categories](quartz/composition-categories.md)
- [Standard Protocol Input Keys](quartz/standard-protocol-input-keys.md)
- [Standard Protocol Output Keys](quartz/standard-protocol-output-keys.md)
- [Standard Protocols](quartz/standard-protocols.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCopying](foundation/nscopying.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Classes

- [QCCompositionLayer](quartz/qccompositionlayer.md)
- [QCCompositionParameterView](quartz/qccompositionparameterview.md)
- [QCCompositionPickerPanel](quartz/qccompositionpickerpanel.md)
- [QCCompositionPickerView](quartz/qccompositionpickerview.md)
- [QCCompositionRepository](quartz/qccompositionrepository.md)
- [QCPatchController](quartz/qcpatchcontroller.md)
- [QCPlugIn](quartz/qcplugin.md)
- [QCPlugInViewController](quartz/qcpluginviewcontroller.md)
- [QCRenderer](quartz/qcrenderer.md)
- [QCView](quartz/qcview.md)
