---
title: retain
framework: corefoundation
role: symbol
role_heading: Instance Property
path: corefoundation/cfbinaryheapcallbacks/retain
---

# retain

Callback function used to retain a value being added to a binary heap.

## Declaration

```swift
var retain: ((CFAllocator?, UnsafeRawPointer?) -> UnsafeRawPointer?)!
```

## Parameters

- `allocator`: The binary heap’s allocator.
- `ptr`: The value to retain.

## Return Value

Return Value The value to store in the binary heap, which is usually the ptr parameter passed to this callback, but may be a different   value if a different value should be stored in the binary heap.

## Discussion

Discussion The callback used to add a retain for the binary heap on values as they are put into the binary heap. This callback returns the value to use as the value in the binary heap, which is usually the value parameter passed to this callback, but may be a different value if a different value should be added to the binary heap. If this field is NULL, the binary heap does nothing to retain a value being added.

## See Also

### Callbacks

- [CFBinaryHeapApplierFunction](corefoundation/cfbinaryheapapplierfunction.md)
- [compare](corefoundation/cfbinaryheapcallbacks/compare.md)
- [copyDescription](corefoundation/cfbinaryheapcallbacks/copydescription.md)
- [release](corefoundation/cfbinaryheapcallbacks/release.md)
- [version](corefoundation/cfbinaryheapcallbacks/version.md)
