---
title: withCapacity
framework: kernel
role: pseudoSymbol
path: kernel/osorderedset/1808196-withcapacity
---

# withCapacity

Creates and initializes an empty OSOrderedSet.

## Declaration

```occ
static OSOrderedSet * withCapacity( 
 unsigned int capacity, 
 OSOrderFunction orderFunc = 0, 
 void *orderingContext = 0); 
```

## Parameters

- `capacity`: The initial storage capacity of the new ordered set object.
- `orderFunc`: A C function that implements the sorting algorithm for the set.
- `orderingContext`: An ordering context, which is passed to orderFunc.

## Return Value

Return Value An empty instance of OSOrderedSet with a retain count of 1; NULL on failure.

## Overview

Overview capacity must be nonzero. The new OSOrderedSet will grow as needed to accommodate more key/object pairs (unlike Core Foundation collections, for which the initial capacity is a hard limit). If orderFunc is provided, it is used by setObject(const OSMetaClassBase *) to determine where to insert a new object. Other object-setting functions ignore ordering. orderingContext is not retained or otherwise memory-managed by the ordered set. If it needs to be deallocated, you must track references to it and the ordered set in order to deallocate it appropriately. See getOrderingRef.

## See Also

### Miscellaneous

- [containsObject](kernel/osorderedset/1808025-containsobject.md)
- [copyCollection](kernel/osorderedset/1808029-copycollection.md)
- [ensureCapacity](kernel/osorderedset/1808033-ensurecapacity.md)
- [flushCollection](kernel/osorderedset/1808037-flushcollection.md)
- [free](kernel/osorderedset/1808043-free.md)
- [getCapacity](kernel/osorderedset/1808056-getcapacity.md)
- [getCapacityIncrement](kernel/osorderedset/1808062-getcapacityincrement.md)
- [getCount](kernel/osorderedset/1808070-getcount.md)
- [getFirstObject](kernel/osorderedset/1808079-getfirstobject.md)
- [getLastObject](kernel/osorderedset/1808089-getlastobject.md)
- [getObject](kernel/osorderedset/1808098-getobject.md)
- [getOrderingRef](kernel/osorderedset/1808105-getorderingref.md)
- [initWithCapacity](kernel/osorderedset/1808112-initwithcapacity.md)
- [isEqualTo(const OSMetaClassBase *)](kernel/osorderedset/1808121-isequalto.md)
- [isEqualTo(const OSOrderedSet *)](kernel/osorderedset/1808130-isequalto.md)
- [member](kernel/osorderedset/1808138-member.md)
- [orderObject](kernel/osorderedset/1808149-orderobject.md)
- [removeObject](kernel/osorderedset/1808158-removeobject.md)
- [setCapacityIncrement](kernel/osorderedset/1808163-setcapacityincrement.md)
- [setFirstObject](kernel/osorderedset/1808169-setfirstobject.md)
- [setLastObject](kernel/osorderedset/1808176-setlastobject.md)
- [setObject(const OSMetaClassBase *)](kernel/osorderedset/1808180-setobject.md)
- [setObject(unsigned int, const OSMetaClassBase *)](kernel/osorderedset/1808188-setobject.md)
