---
title: OSSet
framework: kernel
role: symbol
role_heading: Class
path: kernel/osset
---

# OSSet

OSSet provides an unordered set store of objects.

## Declaration

```occ
class OSSet : OSArray
```

```occ
class OSSet : OSCollection
```

## Overview

Overview OSSet is a container for Libkern C++ objects (those derived from OSMetaClassBase, in particular OSObject). Storage and access follow basic set logic: you can add or remove an object, and test whether the set contains a particular object. A given object is only stored in the set once, and there is no ordering of objects in the set. A subclass OSOrderedSet, provides for ordered set logic. As with all Libkern collection classes, OSSet retains objects added to it, and releases objects removed from it. An OSSet also grows as necessary to accommodate new objects, unlike Core Foundation collections (it does not, however, shrink). Use Restrictions With very few exceptions in the I/O Kit, all Libkern-based C++ classes, functions, and macros are unsafe to use in a primary interrupt context. Consult the I/O Kit documentation related to primary interrupts for more information. OSSet provides no concurrency protection; it's up to the usage context to provide any protection necessary. Some portions of the I/O Kit, such as IORegistryEntry, handle synchronization via defined member functions for setting properties.

## Topics

### Miscellaneous

- [containsObject](kernel/osset/1808031-containsobject.md)
- [copyCollection](kernel/osset/1808046-copycollection.md)
- [ensureCapacity](kernel/osset/1808068-ensurecapacity.md)
- [flushCollection](kernel/osset/1808084-flushcollection.md)
- [free](kernel/osset/1808104-free.md)
- [getAnyObject](kernel/osset/1808128-getanyobject.md)
- [getCapacity](kernel/osset/1808152-getcapacity.md)
- [getCapacityIncrement](kernel/osset/1808173-getcapacityincrement.md)
- [getCount](kernel/osset/1808189-getcount.md)
- [initWithArray](kernel/osset/1808200-initwitharray.md)
- [initWithCapacity](kernel/osset/1808213-initwithcapacity.md)
- [initWithObjects](kernel/osset/1808221-initwithobjects.md)
- [initWithSet](kernel/osset/1808228-initwithset.md)
- [isEqualTo(const OSMetaClassBase *)](kernel/osset/1808235-isequalto.md)
- [isEqualTo(const OSSet *)](kernel/osset/1808239-isequalto.md)
- [member](kernel/osset/1808245-member.md)
- [merge(const OSArray *)](kernel/osset/1808250-merge.md)
- [merge(const OSSet *)](kernel/osset/1808253-merge.md)
- [removeObject](kernel/osset/1808257-removeobject.md)
- [serialize](kernel/osset/1808260-serialize.md)
- [setCapacityIncrement](kernel/osset/1808264-setcapacityincrement.md)
- [setObject](kernel/osset/1808269-setobject.md)
- [withArray](kernel/osset/1808277-witharray.md)
- [withCapacity](kernel/osset/1808282-withcapacity.md)
- [withObjects](kernel/osset/1808287-withobjects.md)
- [withSet](kernel/osset/1808291-withset.md)

### Instance Methods

- [containsObject](kernel/osset/1535170-containsobject.md)
- [copyCollection](kernel/osset/1535199-copycollection.md)
- [ensureCapacity](kernel/osset/1535195-ensurecapacity.md)
- [flushCollection](kernel/osset/1535159-flushcollection.md)
- [free](kernel/osset/1535175-free.md)
- [getAnyObject](kernel/osset/1535166-getanyobject.md)
- [getCapacity](kernel/osset/1535197-getcapacity.md)
- [getCapacityIncrement](kernel/osset/1535169-getcapacityincrement.md)
- [getCount](kernel/osset/1535182-getcount.md)
- [getMetaClass](kernel/osset/1535185-getmetaclass.md)
- [getNextObjectForIterator](kernel/osset/1535167-getnextobjectforiterator.md)
- [init](driverkit/osset/3758352-init.md)
- [initIterator](kernel/osset/1535164-inititerator.md)
- [initWithArray](kernel/osset/1535174-initwitharray.md)
- [initWithCapacity](kernel/osset/1535162-initwithcapacity.md)
- [initWithObjects](kernel/osset/1535189-initwithobjects.md)
- [initWithSet](kernel/osset/1535161-initwithset.md)
- [isEqualTo](kernel/osset/1535171-isequalto.md)
- [isEqualTo](kernel/osset/3516842-isequalto.md)
- [iteratorSize](kernel/osset/1535180-iteratorsize.md)
- [member](kernel/osset/1535179-member.md)
- [merge](kernel/osset/1535168-merge.md)
- [merge](kernel/osset/3516843-merge.md)
- [removeObject](kernel/osset/1535183-removeobject.md)
- [removeObject](kernel/osset/3567176-removeobject.md)
- [serialize](kernel/osset/1535191-serialize.md)
- [setCapacityIncrement](kernel/osset/1535173-setcapacityincrement.md)
- [setObject](kernel/osset/1535188-setobject.md)
- [setObject](kernel/osset/3567177-setobject.md)
- [setOptions](kernel/osset/1535177-setoptions.md)

### Type Methods

- [withArray](kernel/osset/1535176-witharray.md)
- [withCapacity](kernel/osset/1535163-withcapacity.md)
- [withObjects](kernel/osset/1535193-withobjects.md)
- [withSet](kernel/osset/1535186-withset.md)

## Relationships

### Inherits From

- [OSArray](driverkit/osarray.md)
- [OSCollection](kernel/oscollection.md)

## See Also

### Collections

- [OSArray](kernel/osarray.md)
- [OSDictionary](kernel/osdictionary.md)
- [OSOrderedSet](kernel/osorderedset.md)
- [OSCollection](kernel/oscollection.md)
- [OSCollectionIterator](kernel/oscollectioniterator.md)
- [OSIterator](kernel/ositerator.md)
