---
title: "NSMapInsertIfAbsent(_:_:_:)"
framework: foundation
role: symbol
role_heading: Function
path: "foundation/nsmapinsertifabsent(_:_:_:)"
---

# NSMapInsertIfAbsent(_:_:_:)

Inserts a key-value pair into the specified table.

## Declaration

```swift
func NSMapInsertIfAbsent(_ table: NSMapTable<AnyObject, AnyObject>, _ key: UnsafeRawPointer?, _ value: UnsafeRawPointer?) -> UnsafeMutableRawPointer?
```

## Return Value

Return Value If key matches a key already in table, the preexisting value; otherwise, key and value are added to table and returns NULL.

## Discussion

Discussion Raises NSInvalidArgumentException if key is equal to the notAKeyMarker field of the table’s NSMapTableKeyCallBacks structure.

## See Also

### Related Documentation

- [NSMapRemove(_:_:)](foundation/nsmapremove(_:_:).md)
- [NSMapInsert(_:_:_:)](foundation/nsmapinsert(_:_:_:).md)
- [NSMapInsertKnownAbsent(_:_:_:)](foundation/nsmapinsertknownabsent(_:_:_:).md)

### Functions

- [NSAllMapTableKeys(_:)](foundation/nsallmaptablekeys(_:).md)
- [NSAllMapTableValues(_:)](foundation/nsallmaptablevalues(_:).md)
- [NSCompareMapTables(_:_:)](foundation/nscomparemaptables(_:_:).md)
- [NSCopyMapTableWithZone(_:_:)](foundation/nscopymaptablewithzone(_:_:).md)
- [NSCountMapTable(_:)](foundation/nscountmaptable(_:).md)
- [NSCreateMapTable(_:_:_:)](foundation/nscreatemaptable(_:_:_:).md)
- [NSCreateMapTableWithZone(_:_:_:_:)](foundation/nscreatemaptablewithzone(_:_:_:_:).md)
- [NSEndMapTableEnumeration(_:)](foundation/nsendmaptableenumeration(_:).md)
- [NSEnumerateMapTable(_:)](foundation/nsenumeratemaptable(_:).md)
- [NSFreeMapTable(_:)](foundation/nsfreemaptable(_:).md)
- [NSMapGet(_:_:)](foundation/nsmapget(_:_:).md)
- [NSMapInsert(_:_:_:)](foundation/nsmapinsert(_:_:_:).md)
- [NSMapInsertKnownAbsent(_:_:_:)](foundation/nsmapinsertknownabsent(_:_:_:).md)
- [NSMapMember(_:_:_:_:)](foundation/nsmapmember(_:_:_:_:).md)
- [NSMapRemove(_:_:)](foundation/nsmapremove(_:_:).md)
