---
title: "CFPropertyListCreateDeepCopy(_:_:_:)"
framework: corefoundation
role: symbol
role_heading: Function
path: "corefoundation/cfpropertylistcreatedeepcopy(_:_:_:)"
---

# CFPropertyListCreateDeepCopy(_:_:_:)

Recursively creates a copy of a given property list.

## Declaration

```swift
func CFPropertyListCreateDeepCopy(_ allocator: CFAllocator!, _ propertyList: CFPropertyList!, _ mutabilityOption: CFOptionFlags) -> CFPropertyList!
```

## Parameters

- `allocator`: The allocator to use to allocate memory for the new property list. Pass NULL or kCFAllocatorDefault to use the current default allocator.
- `propertyList`: The property list to copy. This may be any of the standard property list objects, for example a CFArray or a CFDictionary object.
- `mutabilityOption`: A constant that specifies the degree of mutability of the returned property list. See doc://com.apple.corefoundation/documentation/CoreFoundation/property_list_mutability_options for descriptions of possible values.

## Return Value

Return Value A new property list that is a copy of propertyList. Ownership follows the The Create Rule.

## Discussion

Discussion Recursively creates a copy of the given property list so nested arrays and dictionaries are copied as well as the top-most container.

## See Also

### Creating a Property List

- [CFPropertyListCreateWithData(_:_:_:_:_:)](corefoundation/cfpropertylistcreatewithdata(_:_:_:_:_:).md)
- [CFPropertyListCreateWithStream(_:_:_:_:_:_:)](corefoundation/cfpropertylistcreatewithstream(_:_:_:_:_:_:).md)
- [CFPropertyListCreateFromXMLData(_:_:_:_:)](corefoundation/cfpropertylistcreatefromxmldata(_:_:_:_:).md)
- [CFPropertyListCreateFromStream(_:_:_:_:_:_:)](corefoundation/cfpropertylistcreatefromstream(_:_:_:_:_:_:).md)
