---
title: "setCompositionsFromRepositoryWithProtocol(_:andAttributes:)"
framework: quartz
role: symbol
role_heading: Instance Method
path: "quartz/qccompositionpickerview/setcompositionsfromrepositorywithprotocol(_:andattributes:)"
---

# setCompositionsFromRepositoryWithProtocol(_:andAttributes:)

Sets the  compositions in the composition picker view  to those that match the specified criteria.

## Declaration

```swift
func setCompositionsFromRepositoryWithProtocol(_ protocol: String!, andAttributes attributes: [AnyHashable : Any]! = [:])
```

## Parameters

- `protocol`: The protocols that you want compositions shown in the picker view to conform to. You can pass any of these protocols: QCCompositionProtocolAnimation, QCCompositionProtocolImageProducer, QCCompositionProtocolImageFilter, QCCompositionProtocolImageCompositor, and QCCompositionProtocolScreenSaverRSS.
- `attributes`: A dictionary that contains the attributes, and their associated values, that you want compositions in the picker view to match. For example, you can pass: QCCompositionAttributeNameKey, QCCompositionAttributeDescriptionKey, QCCompositionAttributeCopyrightKey, and QCCompositionAttributeBuiltInKey. Pass nil if you don’t want to filter based on the attributes.

## See Also

### Managing the Composition Picker View

- [compositions()](quartz/qccompositionpickerview/compositions().md)
- [setAllowsEmptySelection(_:)](quartz/qccompositionpickerview/setallowsemptyselection(_:).md)
- [allowsEmptySelection()](quartz/qccompositionpickerview/allowsemptyselection().md)
- [setCompositionAspectRatio(_:)](quartz/qccompositionpickerview/setcompositionaspectratio(_:).md)
- [compositionAspectRatio()](quartz/qccompositionpickerview/compositionaspectratio().md)
- [setSelectedComposition(_:)](quartz/qccompositionpickerview/setselectedcomposition(_:).md)
- [selectedComposition()](quartz/qccompositionpickerview/selectedcomposition().md)
