---
title: taggedRetain
framework: kernel
role: pseudoSymbol
path: kernel/osobject/1941158-taggedretain
---

# taggedRetain

Retains a reference to the object with an optional tag used for reference-tracking.

## Declaration

```occ
virtual void taggedRetain(
 const void *tag = 0) const; 
```

## Parameters

- `tag`: Used for tracking collection references.

## Overview

Overview Kernel extensions should not use this function. It is for use by OSCollection and subclasses to track inclusion in collections. If you need to maintain a reference to an object outside the context in which you received it, you should always retain it immediately.

## See Also

### Miscellaneous

- [free](kernel/osobject/1941146-free.md)
- [getRetainCount](kernel/osobject/1941147-getretaincount.md)
- [init](kernel/osobject/1941148-init.md)
- [operator delete](kernel/osobject/1941149-operator_delete.md)
- [operator new](kernel/osobject/1941150-operator_new.md)
- [release()](kernel/osobject/1941151-release.md)
- [release(int)](kernel/osobject/1941153-release.md)
- [retain](kernel/osobject/1941154-retain.md)
- [serialize](kernel/osobject/1941155-serialize.md)
- [taggedRelease(const void *)](kernel/osobject/1941156-taggedrelease.md)
- [taggedRelease(const void *, const int)](kernel/osobject/1941157-taggedrelease.md)
