---
title: copyCollection
framework: kernel
role: pseudoSymbol
path: kernel/osarray/1808122-copycollection
---

# copyCollection

Creates a deep copy of an array and its child collections.

## Declaration

```occ
OSCollection * copyCollection(
 OSDictionary *cycleDict = 0); 
```

## Parameters

- `cycleDict`: A dictionary of all of the collections that have been copied so far, which is used to track circular references. To start the copy at the top level, pass NULL.

## Return Value

Return Value The newly copied array, with a retain count of 1, or NULL if there is insufficient memory to do the copy.

## Overview

Overview The receiving array, and any collections it contains, recursively, are copied. Objects that are not derived from OSCollection are retained rather than copied.

## See Also

### Miscellaneous

- [ensureCapacity](kernel/osarray/1808132-ensurecapacity.md)
- [flushCollection](kernel/osarray/1808145-flushcollection.md)
- [free](kernel/osarray/1808156-free.md)
- [getCapacity](kernel/osarray/1808168-getcapacity.md)
- [getCapacityIncrement](kernel/osarray/1808174-getcapacityincrement.md)
- [getCount](kernel/osarray/1808184-getcount.md)
- [getLastObject](kernel/osarray/1808193-getlastobject.md)
- [getNextIndexOfObject](kernel/osarray/1808202-getnextindexofobject.md)
- [getObject](kernel/osarray/1808210-getobject.md)
- [initWithArray](kernel/osarray/1808216-initwitharray.md)
- [initWithCapacity](kernel/osarray/1808222-initwithcapacity.md)
- [initWithObjects](kernel/osarray/1808226-initwithobjects.md)
- [isEqualTo(const OSArray *)](kernel/osarray/1808231-isequalto.md)
- [isEqualTo(const OSMetaClassBase *)](kernel/osarray/1808236-isequalto.md)
- [merge](kernel/osarray/1808242-merge.md)
- [removeObject](kernel/osarray/1808246-removeobject.md)
- [replaceObject](kernel/osarray/1808249-replaceobject.md)
- [serialize](kernel/osarray/1808255-serialize.md)
- [setCapacityIncrement](kernel/osarray/1808259-setcapacityincrement.md)
- [setObject(const OSMetaClassBase *)](kernel/osarray/1808261-setobject.md)
- [setObject(unsigned int, const OSMetaClassBase *)](kernel/osarray/1808266-setobject.md)
- [withArray](kernel/osarray/1808272-witharray.md)
- [withCapacity](kernel/osarray/1808279-withcapacity.md)
- [withObjects](kernel/osarray/1808285-withobjects.md)
