<!--
{
  "documentType" : "article",
  "framework" : "Foundation",
  "identifier" : "/documentation/Foundation/legacy-map-table-implementation",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Legacy Map Table Implementation"
}
-->

# Legacy Map Table Implementation

## Topics

### Functions

[`func NSAllMapTableKeys(NSMapTable<AnyObject, AnyObject>) -> [Any]`](/documentation/Foundation/NSAllMapTableKeys(_:))

Returns all of the keys in the specified map table.

[`func NSAllMapTableValues(NSMapTable<AnyObject, AnyObject>) -> [Any]`](/documentation/Foundation/NSAllMapTableValues(_:))

Returns all of the values in the specified table.

[`func NSCompareMapTables(NSMapTable<AnyObject, AnyObject>, NSMapTable<AnyObject, AnyObject>) -> Bool`](/documentation/Foundation/NSCompareMapTables(_:_:))

Compares the elements of two map tables for equality.

[`func NSCopyMapTableWithZone(NSMapTable<AnyObject, AnyObject>, NSZone?) -> NSMapTable<AnyObject, AnyObject>`](/documentation/Foundation/NSCopyMapTableWithZone(_:_:))

Performs a shallow copy of the specified map table.

[`func NSCountMapTable(NSMapTable<AnyObject, AnyObject>) -> Int`](/documentation/Foundation/NSCountMapTable(_:))

Returns the number of elements in a map table.

[`func NSCreateMapTable(NSMapTableKeyCallBacks, NSMapTableValueCallBacks, Int) -> NSMapTable<AnyObject, AnyObject>`](/documentation/Foundation/NSCreateMapTable(_:_:_:))

Creates a new map table in the default zone.

[`func NSCreateMapTableWithZone(NSMapTableKeyCallBacks, NSMapTableValueCallBacks, Int, NSZone?) -> NSMapTable<AnyObject, AnyObject>`](/documentation/Foundation/NSCreateMapTableWithZone(_:_:_:_:))

Creates a new map table in the specified zone.

[`func NSEndMapTableEnumeration(UnsafeMutablePointer<NSMapEnumerator>)`](/documentation/Foundation/NSEndMapTableEnumeration(_:))

Used when finished with an enumerator.

[`func NSEnumerateMapTable(NSMapTable<AnyObject, AnyObject>) -> NSMapEnumerator`](/documentation/Foundation/NSEnumerateMapTable(_:))

Creates an enumerator for the specified map table.

[`func NSFreeMapTable(consuming NSMapTable<AnyObject, AnyObject>)`](/documentation/Foundation/NSFreeMapTable(_:))

Deletes the specified map table.

[`func NSMapGet(NSMapTable<AnyObject, AnyObject>, UnsafeRawPointer?) -> UnsafeMutableRawPointer?`](/documentation/Foundation/NSMapGet(_:_:))

Returns a map table value for the specified key.

[`func NSMapInsert(NSMapTable<AnyObject, AnyObject>, UnsafeRawPointer?, UnsafeRawPointer?)`](/documentation/Foundation/NSMapInsert(_:_:_:))

Inserts a key-value pair into the specified table.

[`func NSMapInsertIfAbsent(NSMapTable<AnyObject, AnyObject>, UnsafeRawPointer?, UnsafeRawPointer?) -> UnsafeMutableRawPointer?`](/documentation/Foundation/NSMapInsertIfAbsent(_:_:_:))

Inserts a key-value pair into the specified table.

[`func NSMapInsertKnownAbsent(NSMapTable<AnyObject, AnyObject>, UnsafeRawPointer?, UnsafeRawPointer?)`](/documentation/Foundation/NSMapInsertKnownAbsent(_:_:_:))

Inserts a key-value pair into the specified table if the pair had not been previously added.

[`func NSMapMember(NSMapTable<AnyObject, AnyObject>, UnsafeRawPointer, UnsafeMutablePointer<UnsafeMutableRawPointer?>?, UnsafeMutablePointer<UnsafeMutableRawPointer?>?) -> Bool`](/documentation/Foundation/NSMapMember(_:_:_:_:))

Indicates whether a given table contains a given key.

[`func NSMapRemove(NSMapTable<AnyObject, AnyObject>, UnsafeRawPointer?)`](/documentation/Foundation/NSMapRemove(_:_:))

Removes a key and corresponding value from the specified table.

[`func NSNextMapEnumeratorPair(UnsafeMutablePointer<NSMapEnumerator>, UnsafeMutablePointer<UnsafeMutableRawPointer?>?, UnsafeMutablePointer<UnsafeMutableRawPointer?>?) -> Bool`](/documentation/Foundation/NSNextMapEnumeratorPair(_:_:_:))

Returns a Boolean value that indicates whether the next map-table pair in the enumeration are set.

[`func NSResetMapTable(NSMapTable<AnyObject, AnyObject>)`](/documentation/Foundation/NSResetMapTable(_:))

Deletes the elements of the specified map table.

[`func NSStringFromMapTable(NSMapTable<AnyObject, AnyObject>) -> String`](/documentation/Foundation/NSStringFromMapTable(_:))

Returns a string describing the map table’s contents.

### Data Types

[`struct NSMapEnumerator`](/documentation/Foundation/NSMapEnumerator)

Allows successive elements of a map table to be returned each time this structure is passed to [`NSNextMapEnumeratorPair(_:_:_:)`](/documentation/Foundation/NSNextMapEnumeratorPair(_:_:_:)).

[NSMapTable](/documentation/Foundation/legacy-nsmaptable)

The opaque data type used by the functions described in Managing Map Tables.

[`struct NSMapTableKeyCallBacks`](/documentation/Foundation/NSMapTableKeyCallBacks)

The function pointers used to configure behavior of `NSMapTable` with respect to key elements within a map table.

[`typealias NSMapTableOptions`](/documentation/Foundation/NSMapTableOptions)

Constants used as components in a bitfield to specify the behavior of elements (keys and values) in an `NSMapTable` object.

[`struct NSMapTableValueCallBacks`](/documentation/Foundation/NSMapTableValueCallBacks)

The function pointers used to configure behavior of `NSMapTable` with respect to value elements within a map table.

### Constants

[`#define NSNotAnIntMapKey`](/documentation/Foundation/NSNotAnIntMapKey)

Predefined `notAKeyMarker` for use with [`NSMapTableKeyCallBacks`](/documentation/Foundation/NSMapTableKeyCallBacks).

[`#define NSNotAnIntegerMapKey`](/documentation/Foundation/NSNotAnIntegerMapKey)

Predefined `notAKeyMarker` for use with [`NSMapTableKeyCallBacks`](/documentation/Foundation/NSMapTableKeyCallBacks).

[`#define NSNotAPointerMapKey`](/documentation/Foundation/NSNotAPointerMapKey)

Predefined `notAKeyMarker` for use with [`NSMapTableKeyCallBacks`](/documentation/Foundation/NSMapTableKeyCallBacks).

### Constants

[`let NSIntegerMapKeyCallBacks: NSMapTableKeyCallBacks`](/documentation/Foundation/NSIntegerMapKeyCallBacks)

For keys that are pointer-sized quantities or smaller (for example, `int`, `long`, or `unichar`).

[`let NSIntMapKeyCallBacks: NSMapTableKeyCallBacks`](/documentation/Foundation/NSIntMapKeyCallBacks)

For keys that are pointer-sized quantities or smaller (for example, `int`, `long`, or `unichar`).

[`let NSNonOwnedPointerMapKeyCallBacks: NSMapTableKeyCallBacks`](/documentation/Foundation/NSNonOwnedPointerMapKeyCallBacks)

For keys that are pointers not freed.

[`let NSNonOwnedPointerOrNullMapKeyCallBacks: NSMapTableKeyCallBacks`](/documentation/Foundation/NSNonOwnedPointerOrNullMapKeyCallBacks)

For keys that are pointers not freed, or `NULL`.

[`let NSNonRetainedObjectMapKeyCallBacks: NSMapTableKeyCallBacks`](/documentation/Foundation/NSNonRetainedObjectMapKeyCallBacks)

For sets of objects, but without retaining/releasing.

[`let NSObjectMapKeyCallBacks: NSMapTableKeyCallBacks`](/documentation/Foundation/NSObjectMapKeyCallBacks)

For keys that are objects.

[`let NSOwnedPointerMapKeyCallBacks: NSMapTableKeyCallBacks`](/documentation/Foundation/NSOwnedPointerMapKeyCallBacks)

For keys that are pointers, with transfer of ownership upon insertion.

### Constants

[`let NSIntegerMapValueCallBacks: NSMapTableValueCallBacks`](/documentation/Foundation/NSIntegerMapValueCallBacks)

For values that are pointer-sized quantities, (for example, `int`, `long`, or `unichar`).

[`let NSIntMapValueCallBacks: NSMapTableValueCallBacks`](/documentation/Foundation/NSIntMapValueCallBacks)

For values that are pointer-sized quantities, (for example, `int`, `long`, or `unichar`).

[`let NSNonOwnedPointerMapValueCallBacks: NSMapTableValueCallBacks`](/documentation/Foundation/NSNonOwnedPointerMapValueCallBacks)

For values that are not owned pointers.

[`let NSOwnedPointerMapValueCallBacks: NSMapTableValueCallBacks`](/documentation/Foundation/NSOwnedPointerMapValueCallBacks)

For values that are owned pointers.

[`let NSNonRetainedObjectMapValueCallBacks: NSMapTableValueCallBacks`](/documentation/Foundation/NSNonRetainedObjectMapValueCallBacks)

For sets of objects, but without retaining/releasing.

[`let NSObjectMapValueCallBacks: NSMapTableValueCallBacks`](/documentation/Foundation/NSObjectMapValueCallBacks)

For values that are objects.



---

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)