<!--
{
  "availability" : [
    "iOS: 9.0.0 -",
    "iPadOS: 9.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.11.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Contacts",
  "identifier" : "/documentation/Contacts/CNContactStore/containers(matching:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "Contacts"
    ],
    "preciseIdentifier" : "c:objc(cs)CNContactStore(im)containersMatchingPredicate:error:"
  },
  "title" : "containers(matching:)"
}
-->

# containers(matching:)

Fetches all containers matching the specified predicate.

```
func containers(matching predicate: NSPredicate?) throws -> [CNContainer]
```

## Parameters

`predicate`

The predicate to use to fetch matching containers. Set this property to `nil` to match all containers.

## Return Value

An array of [`CNContainer`](/documentation/Contacts/CNContainer) objects that match the predicate.

## Discussion

A container holds a collection of contacts, and a contact can be in only one container. CardDAV accounts usually have only one container of contacts. Exchange accounts may have multiple containers, where each container represents an Exchange folder.

This method returns an empty array when no matching container is found. In case of an error this method returns `nil`. You should use only the predicates defined [`CNContainer`](/documentation/Contacts/CNContainer) class. Compound predicates are not supported.

> Handling Errors in Swift: In Swift, this method returns a nonoptional result and is marked with the `throws` keyword to indicate that it throws an error in cases of failure.
> You call this method in a `try` expression and handle any errors in the `catch` clauses of a `do` statement, as described in [Error Handling](https://docs.swift.org/swift-book/LanguageGuide/ErrorHandling.html) in [The Swift Programming Language](https://docs.swift.org/swift-book/) and <doc://com.apple.documentation/documentation/Swift/about-imported-cocoa-error-parameters>.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)