Ссылка CFAllocator
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Swift
import CoreFoundation
Objective C
@import CoreFoundation;
CFAllocator является непрозрачным типом, выделяющим и освобождающим память для Вас. Вы никогда не должны выделять, перераспределять или освобождать память непосредственно для Базовых объектов Основы — и редко должны Вы. Вы передаете объекты CFAllocator в функции, создающие объекты; эти функции имеют, «Создают» встроенный в их имена, например, CFStringCreateWithPascalString
. Функции создания используют средства выделения для выделения памяти для объектов, которые они создают.
-
Создает объект-распределитель.
Объявление
Swift
func CFAllocatorCreate(_
allocator
: CFAllocator!, _context
: UnsafeMutablePointer<CFAllocatorContext>) -> Unmanaged<CFAllocator>!Objective C
CFAllocatorRef CFAllocatorCreate ( CFAllocatorRef allocator, CFAllocatorContext *context );
Параметры
allocator
Существующее средство выделения для использования для выделения памяти для нового средства выделения. Передайте
kCFAllocatorUseContext
постоянный для этого параметра для выделения памяти с помощью надлежащего функционального обратного вызова, указанного вcontext
параметр. ПередачаNULL
или kCFAllocatorDefault для выделения памяти для нового средства выделения с помощью средства выделения по умолчанию.context
Структура типа
CFAllocatorContext
. Поля этой структуры содержат (среди прочего) указатели функции к обратным вызовам, используемым для выделения, перераспределения и освобождения памяти.Возвращаемое значение
Новый объект-распределитель, или
NULL
если была проблема, выделяющая память. Владение соблюдает Создать Правило.Обсуждение
Вы используете эту функцию для создания пользовательских средств выделения, которые можно тогда передать в различные Базовые функции создания объекта Основы. Необходимо реализовать функциональный обратный вызов, выделяющий память, и присвойте ее
allocate
поле этой структуры. Вы обычно также реализуете, освобождают, перераспределяют, и обратные вызовы предпочтительного размера.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в iOS 2.0 и позже.
-
Выделяет память с помощью указанного средства выделения.
Объявление
Swift
func CFAllocatorAllocate(_
allocator
: CFAllocator!, _size
: CFIndex, _hint
: CFOptionFlags) -> UnsafeMutablePointer<Void>Objective C
void * CFAllocatorAllocate ( CFAllocatorRef allocator, CFIndex size, CFOptionFlags hint );
Параметры
allocator
Средство выделения для использования для выделения памяти. Передача
NULL
илиkCFAllocatorDefault
использовать текущее средство выделения по умолчанию.size
Размер памяти для выделения.
hint
Битовое поле, содержащее флаги, предлагающие, как должна быть выделена память.
0
не указывает подсказок. Никакие подсказки в настоящее время не определяются, так только0
должен быть передан для этого значения.Возвращаемое значение
Указатель на недавно выделенную память.
Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в iOS 2.0 и позже.
-
Освобождает блок памяти с данным средством выделения.
Объявление
Swift
func CFAllocatorDeallocate(_
allocator
: CFAllocator!, _ptr
: UnsafeMutablePointer<Void>)Objective C
void CFAllocatorDeallocate ( CFAllocatorRef allocator, void *ptr );
Параметры
allocator
Средство выделения, использовавшееся для выделения блока памяти, которой указывают
ptr
.ptr
Невведенный указатель на блок памяти для освобождения использования
allocator
.Обсуждение
Если средство выделения не указывает a
deallocate
функция обратного вызова, память не освобождена.Специальные замечания
Необходимо использовать то же средство выделения для освобождения памяти, как использовался для выделения его.
Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в iOS 2.0 и позже.
-
Получает число байтов, вероятно, чтобы быть выделенным по определенному запросу.
Объявление
Swift
func CFAllocatorGetPreferredSizeForSize(_
allocator
: CFAllocator!, _size
: CFIndex, _hint
: CFOptionFlags) -> CFIndexObjective C
CFIndex CFAllocatorGetPreferredSizeForSize ( CFAllocatorRef allocator, CFIndex size, CFOptionFlags hint );
Параметры
allocator
Средство выделения для использования, или
NULL
для средства выделения по умолчанию.size
Число байтов для выделения. Если значение
0
или меньше, результатом является то же значение.hint
Битовое поле типа
CFOptionsFlags
. Передача отмечает к средству выделения, которые предлагают, как должна быть выделена память.0
не указывает подсказок. Никакие подсказки в настоящее время не определяются, только0
должен быть передан для этого параметра.Возвращаемое значение
Число байтов, вероятно, чтобы быть выделенным по определенному запросу.
Обсуждение
Возвращаемое значение зависит от внутренней стратегии выделения средства выделения, и будет равным или больше, чем
size
. Вызывание этой функции может помочь Вам лучше соответствовать свою стратегию выделения памяти или перераспределения к тому из средства выделения.Обратите внимание на то, что возвращаемое значение зависит от внутренней реализации средства выделения, и результаты могут измениться от выпуска до выпуска или от платформы до платформы.
Если никакой функциональный обратный вызов не присваивается
preferredSize
поле контекста средства выделения (см.CFAllocatorContext
структура), тогда значениеsize
возвращается.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в iOS 2.0 и позже.
-
Перераспределяет память с помощью указанного средства выделения.
Объявление
Swift
func CFAllocatorReallocate(_
allocator
: CFAllocator!, _ptr
: UnsafeMutablePointer<Void>, _newsize
: CFIndex, _hint
: CFOptionFlags) -> UnsafeMutablePointer<Void>Objective C
void * CFAllocatorReallocate ( CFAllocatorRef allocator, void *ptr, CFIndex newsize, CFOptionFlags hint );
Параметры
allocator
Средство выделения для использования для перераспределения памяти. Передача
NULL
запрашивать средство выделения по умолчанию.ptr
Невведенный указатель на блок памяти для перераспределения к новому размеру. Если
ptr
NULL
иnewsize
больше, чем 0, память выделяется (использованиеallocate
функциональный обратный вызов контекста средства выделения). Еслиptr
NULL
иnewsize
0, результатNULL
.newsize
Число байтов для выделения. Если Вы передаете
0
иptr
параметр не -NULL
, блок памяти этоptr
точки к обычно освобождаются. Если Вы передаете 0 для этого параметра иptr
параметрNULL
, ничто не происходит, и результат возвратился,NULL
.hint
Битовое поле типа
CFOptionsFlags
. Передача отмечает к средству выделения, которые предлагают, как должна быть выделена память. Нуль не указывает подсказок. Никакие подсказки в настоящее время не определяются, только0
должен быть передан для этого параметра.Обсуждение
CFAllocatorReallocate
основная цель функции состоит в том, чтобы перераспределить блок памяти к новому (и обычно больше) размер. Однако на основе значений, переданных в уверенности о параметрах, эта функция может также выделить память заново или освободить данный блок памяти. Следующее суммирует семантические комбинации:Если
ptr
параметр не -NULL
иnewsize
параметр больше, чем0
, поведение состоит в том, чтобы перераспределить.Если
ptr
параметрNULL
иnewsize
параметр больше, чем0
, поведение состоит в том, чтобы выделить.Если
ptr
параметр не -NULL
иnewsize
параметр0
, поведение состоит в том, чтобы освободить.
Результат
CFAllocatorReallocate
функция является или невведенным указателем на блок памяти илиNULL
. ANULL
результат указывает или отказ выделить память или некоторый другой результат, точная интерпретация которого определяется значениями определенных параметров и присутствия или отсутствия обратных вызовов в контексте средства выделения. Подводить итог, aNULL
результат может означать одно из следующего:Ошибка произошла в попытке выделить память, такую как недостаточное свободное пространство.
Нет
allocate
,reallocate
, илиdeallocate
функциональный обратный вызов (в зависимости от параметров) был определен в контексте средства выделения.Семантическая работа, «освобождают» (т.е. нет никакой потребности возвратить что-либо).
ptr
параметрNULL
и требуемый размер 0.
Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в iOS 2.0 и позже.
-
Получает объект-распределитель по умолчанию для текущего потока.
Объявление
Swift
func CFAllocatorGetDefault() -> Unmanaged<CFAllocator>!
Objective C
CFAllocatorRef CFAllocatorGetDefault ( void );
Возвращаемое значение
Ссылка на средство выделения по умолчанию для текущего потока. Если ни один не был явно установлен, возвращает универсальное системное средство выделения,
kCFAllocatorSystemDefault
. Владение соблюдает Получить Правило.Обсуждение
Посмотрите обсуждение для
CFAllocatorSetDefault
для большего количества подробности о средстве выделения по умолчанию и для уведомления, на как и когда установить пользовательское средство выделения как значение по умолчанию.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в iOS 2.0 и позже.
-
Устанавливает данное средство выделения как значение по умолчанию для текущего потока.
Объявление
Swift
func CFAllocatorSetDefault(_
allocator
: CFAllocator!)Objective C
void CFAllocatorSetDefault ( CFAllocatorRef allocator );
Параметры
allocator
Средство выделения для установки как значение по умолчанию для текущего потока.
Обсуждение
CFAllocatorSetDefault
функционируйте устанавливает средство выделения, использующееся в текущем потоке каждый раз, когдаNULL
указан как параметр средства выделения. Обычно большинство выделений использует средство выделения по умолчанию. Из-за этого средство выделения по умолчанию должно быть подготовлено иметь дело с произвольными запросами выделения памяти. Кроме того, размер и число запросов могут измениться между выпусками.Дальнейшая характеристика средства выделения по умолчанию - то, что оно никогда не может выпускаться, даже если другое средство выделения заменяет его в качестве значения по умолчанию. Мало того, что это непрактично для выпуска средства выделения по умолчанию (потому что могли бы быть кэши, создал где-нибудь, которые относятся к средству выделения), но это обычно более безопасно и более эффективно иметь в наличии его.
Если Вы хотите использовать пользовательское средство выделения в контексте, лучший подход должен указать, что это в первом параметре создания функционирует, а не установить его как значение по умолчанию. Обычно установка средства выделения по умолчанию не мотивирована. Если Вы действительно устанавливаете средство выделения как значение по умолчанию, или делаете это в течение времени жизни Вашего приложения или делаете это вложенным способом (т.е. восстановите предыдущее средство выделения перед выходом из контекста). Последний подход мог бы быть более подходящим для плагинов или библиотек, хотящих установить средство выделения по умолчанию.
Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в iOS 2.0 и позже.
-
Получает контекст указанного средства выделения или средства выделения по умолчанию.
Объявление
Swift
func CFAllocatorGetContext(_
allocator
: CFAllocator!, _context
: UnsafeMutablePointer<CFAllocatorContext>)Objective C
void CFAllocatorGetContext ( CFAllocatorRef allocator, CFAllocatorContext *context );
Параметры
allocator
Средство выделения для исследования. Передача
NULL
получить контекст средства выделения по умолчанию.context
По возврату, содержит контекст
allocator
.Обсуждение
Контекст средства выделения, структура типа
CFAllocatorContext
, содержит указатели на различные функциональные обратные вызовы (особенно те, которые выделяют, перераспределяют и освобождают память для объекта). Контекст также содержит номер версии иinfo
поле для определенных с помощью программы данных. Получить значениеinfo
поле обычно сначала необходимо получить контекст средства выделения.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в iOS 2.0 и позже.
-
Возвращает идентификатор типа для непрозрачного типа CFAllocator.
Объявление
Swift
func CFAllocatorGetTypeID() -> CFTypeID
Objective C
CFTypeID CFAllocatorGetTypeID ( void );
Возвращаемое значение
Идентификатор типа для непрозрачного типа CFAllocator.
Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в iOS 2.0 и позже.
-
Прототип для функционального обратного вызова, выделяющего память требуемого размера.
Объявление
Swift
typealias CFAllocatorAllocateCallBack = CFunctionPointer<((CFIndex, CFOptionFlags, UnsafeMutablePointer<Void>) -> UnsafeMutablePointer<Void>)>
Objective C
typedef void *(*CFAllocatorAllocateCallBack) ( CFIndex allocSize, CFOptionFlags hint, void *info );
Параметры
allocSize
Эта функция выделяет блок памяти, по крайней мере,
allocSize
байты (всегда больше, чем 0).hint
Битовое поле, в настоящее время не использующееся (всегда набор к 0).
info
Невведенный указатель на определенные с помощью программы данные. Выделите память для данных и присвойте указатель на него. Эти данные часто являются управляющей информацией для средства выделения. Это может быть
NULL
.Возвращаемое значение
Указатель на запуск блока.
Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в iOS 2.0 и позже.
-
Прототип для функционального обратного вызова, предоставляющего описание указанных данных.
Объявление
Swift
typealias CFAllocatorCopyDescriptionCallBack = CFunctionPointer<((UnsafePointer<Void>) -> Unmanaged<CFString>!)>
Objective C
typedef CFStringRef (*CFAllocatorCopyDescriptionCallBack) ( const void *info );
Параметры
info
Невведенный указатель на определенные с помощью программы данные.
Возвращаемое значение
Объект CFString, описывающий средство выделения. Вызывающая сторона ответственна за выпуск этого объекта.
Обсуждение
Прототип для функционального обратного вызова, предоставляющего описание данных, на которые указывают
info
поле. В реализации этой функции возвратите ссылку на объект CFString, описывающий Ваше средство выделения, особенно некоторые характеристики Ваших определенных с помощью программы данных.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в iOS 2.0 и позже.
-
Прототип для функционального обратного вызова, освобождающего блок памяти.
Объявление
Swift
typealias CFAllocatorDeallocateCallBack = CFunctionPointer<((UnsafeMutablePointer<Void>, UnsafeMutablePointer<Void>) -> Void)>
Objective C
typedef void (*CFAllocatorDeallocateCallBack) ( void *ptr, void *info );
Параметры
ptr
Блок памяти для освобождения.
info
Невведенный указатель на определенные с помощью программы данные.
Обсуждение
Прототип для функционального обратного вызова, освобождающего данный блок памяти. В реализации этой функции сделайте блок памяти указанным
ptr
доступный для последующего повторного использования средством выделения, но недоступный продолжительному использованию программой.ptr
параметр не может бытьNULL
и еслиptr
параметр не является блоком памяти, ранее выделенной средством выделения, результаты не определены; аварийное завершение программы может произойти.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в iOS 2.0 и позже.
-
Прототип для функционального обратного вызова, дающего размер памяти, вероятно, чтобы быть выделенным учитывая определенный запрос.
Объявление
Swift
typealias CFAllocatorPreferredSizeCallBack = CFunctionPointer<((CFIndex, CFOptionFlags, UnsafeMutablePointer<Void>) -> CFIndex)>
Objective C
typedef CFIndex (*CFAllocatorPreferredSizeCallBack) ( CFIndex size, CFOptionFlags hint, void *info );
Параметры
size
Объем памяти требуют.
hint
Битовое поле, в настоящее время не использующееся (всегда набор к 0).
info
Невведенный указатель на определенные с помощью программы данные.
Возвращаемое значение
Фактический размер средство выделения, вероятно, выделит данный этот запрос.
Обсуждение
Прототип для функционального обратного вызова, определяющего, существует ли достаточно свободной памяти для удовлетворения запроса. В реализации этой функции возвратите фактический размер, который средство выделения, вероятно, выделит данный запрос на блок памяти размера
size
.hint
параметром является битовое поле, которое Вы не должны в настоящее время использовать.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в iOS 2.0 и позже.
-
Прототип для функционального обратного вызова, перераспределяющего память требуемого размера для существующего блока памяти.
Объявление
Swift
typealias CFAllocatorReallocateCallBack = CFunctionPointer<((UnsafeMutablePointer<Void>, CFIndex, CFOptionFlags, UnsafeMutablePointer<Void>) -> UnsafeMutablePointer<Void>)>
Objective C
typedef void *(*CFAllocatorReallocateCallBack) ( void *ptr, CFIndex newsize, CFOptionFlags hint, void *info );
Параметры
ptr
Блок памяти для изменения размеров.
newsize
Размер нового выделения.
hint
Битовое поле, в настоящее время не использующееся (всегда набор к 0).
info
Невведенный указатель на определенные с помощью программы данные.
Возвращаемое значение
Указатель на новый блок памяти.
Обсуждение
В реализации этой функции измените размер блока памяти, которой указывают
ptr
к размеру, указанномуnewsize
и возвратите указатель на больший блок памяти. ВозвратитьсяNULL
при любом отказе перераспределения, оставляя старый блок памяти нетронутым. Также возвратитесьNULL
следующих условий сразу, если любое из, если ptr параметрNULL
илиnewsize
параметр не больше, чем 0. Оставьте содержание старого блока памяти неизменным до меньших из новых или старых размеров. Еслиptr
параметр не является блоком памяти, ранее выделенной средством выделения, результаты не определены; аварийное завершение программы может произойти.hint
параметром является битовое поле, которое Вы не должны в настоящее время использовать (т.е. присваивать 0).Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в iOS 2.0 и позже.
-
Прототип для функционального обратного вызова, выпускающего определенные данные.
Объявление
Swift
typealias CFAllocatorReleaseCallBack = CFunctionPointer<((UnsafePointer<Void>) -> Void)>
Objective C
typedef void (*CFAllocatorReleaseCallBack) ( const void *info );
Параметры
info
Данные, которые будут выпущены.
Обсуждение
Прототип для функционального обратного вызова, выпускающего данные, на которые указывают
info
поле. В реализации этой функции выпуск (или свободный) данные Вы определили для контекста средства выделения.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в iOS 2.0 и позже.
-
Прототип для функционального обратного вызова, сохраняющего определенные данные.
Объявление
Swift
typealias CFAllocatorRetainCallBack = CFunctionPointer<((UnsafePointer<Void>) -> UnsafePointer<Void>)>
Objective C
typedef const void *(*CFAllocatorRetainCallBack) ( const void *info );
Параметры
info
Данные, которые будут сохранены.
Обсуждение
Прототип для функционального обратного вызова, сохраняющего данные, на которые указывают
info
поле. В реализации этой функции сохраните данные, которые Вы определили для контекста средства выделения в этом поле. (Это могло бы быть целесообразным, только если данные являются Базовым объектом Основы.)Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в iOS 2.0 и позже.
-
Структура, определяющая контекст или операционную среду для средства выделения (CFAllocator) объект. Каждому Базовому объекту-распределителю Основы нужно было определить контекст для него.
Объявление
Swift
struct CFAllocatorContext { var version: CFIndex var info: UnsafeMutablePointer<Void> var retain: CFAllocatorRetainCallBack var release: CFAllocatorReleaseCallBack var copyDescription: CFAllocatorCopyDescriptionCallBack var allocate: CFAllocatorAllocateCallBack var reallocate: CFAllocatorReallocateCallBack var deallocate: CFAllocatorDeallocateCallBack var preferredSize: CFAllocatorPreferredSizeCallBack init() init(version
version
: CFIndex, infoinfo
: UnsafeMutablePointer<Void>, retainretain
: CFAllocatorRetainCallBack, releaserelease
: CFAllocatorReleaseCallBack, copyDescriptioncopyDescription
: CFAllocatorCopyDescriptionCallBack, allocateallocate
: CFAllocatorAllocateCallBack, reallocatereallocate
: CFAllocatorReallocateCallBack, deallocatedeallocate
: CFAllocatorDeallocateCallBack, preferredSizepreferredSize
: CFAllocatorPreferredSizeCallBack) }Objective C
struct CFAllocatorContext { CFIndex version; void *info; CFAllocatorRetainCallBack retain; CFAllocatorReleaseCallBack release; CFAllocatorCopyDescriptionCallBack copyDescription; CFAllocatorAllocateCallBack allocate; CFAllocatorReallocateCallBack reallocate; CFAllocatorDeallocateCallBack deallocate; CFAllocatorPreferredSizeCallBack preferredSize; }; typedef struct CFAllocatorContext CFAllocatorContext;
Поля
version
Целое число типа
CFIndex
. Присвойте номер версии средства выделения. В настоящее время единственное допустимое значение 0.info
Невведенный указатель на определенные с помощью программы данные. Выделите память для этих данных и присвойте указатель на него. Эти данные часто являются управляющей информацией для средства выделения. Можно присвоиться
NULL
.retain
Прототип для функционального обратного вызова, сохраняющего данные, на которые указывают
info
поле. В реализации этой функции сохраните данные, которые Вы определили для контекста средства выделения в этом поле. (Это могло бы быть целесообразным, только если данные являются Базовым объектом Основы.) Можно установить этот указатель функции вNULL
.release
Прототип для функционального обратного вызова, выпускающего данные, на которые указывают
info
поле. В реализации этой функции выпуск (или свободный) данные Вы определили для контекста средства выделения. Можно установить этот указатель функции вNULL
, но выполнение так могло бы привести к утечкам памяти.copyDescription
Прототип для функционального обратного вызова, предоставляющего описание данных, на которые указывают
info
поле. В реализации этой функции возвратите ссылку на объект CFString, описывающий Ваше средство выделения, особенно некоторые характеристики Ваших определенных с помощью программы данных. Можно установить этот указатель функции вNULL
, когда Базовая Основа предоставит элементарное описание.allocate
Прототип для функционального обратного вызова, выделяющего память требуемого размера. В реализации этой функции выделите блок памяти, по крайней мере,
size
байты и возврат указатель на запуск блока.hint
параметром является битовое поле, которое Вы не должны в настоящее время использовать (т.е. присваивать 0).size
параметр должен всегда быть больше, чем 0. Если это не, или если проблемы в выделении происходят, возвратитьсяNULL
. Этот указатель функции не может быть присвоенNULL
.reallocate
Прототип для функционального обратного вызова, перераспределяющего память требуемого размера для существующего блока памяти. В реализации этой функции измените размер блока памяти, которой указывают
ptr
к размеру, указанномуnewsize
и возвратите указатель на больший блок памяти. ВозвратитьсяNULL
при любом отказе перераспределения, оставляя старый блок памяти нетронутым. Также возвратитесьNULL
сразу, если применяется какое-либо из следующих условий:ptr параметр
NULL
.newsize параметр не больше, чем 0.
Оставьте содержание старого блока памяти неизменным до меньших из новых или старых размеров. Если
ptr
параметр не является блоком памяти, ранее выделенной средством выделения, результаты не определены; аварийное завершение программы может произойти.hint
параметром является битовое поле, которое Вы не должны в настоящее время использовать (т.е. присваивать 0). Если Вы устанавливаете этот обратный вызов вNULL
CFAllocatorReallocate
функциональные возвратыNULL
в большинстве случаев, когда это пытается использовать это средство выделения.
deallocate
Прототип для функционального обратного вызова, освобождающего данный блок памяти. В реализации этой функции сделайте блок памяти указанным
ptr
доступный для последующего повторного использования средством выделения, но недоступный продолжительному использованию программой.ptr
параметр не может бытьNULL
и еслиptr
параметр не является блоком памяти, ранее выделенной средством выделения, результаты не определены; аварийное завершение программы может произойти. Можно установить этот обратный вызов вNULL
, когдаCFAllocatorDeallocate
функция не имеет никакого эффекта.preferredSize
Прототип для функционального обратного вызова, определяющего, существует ли достаточно свободной памяти для удовлетворения запроса. В реализации этой функции возвратите фактический размер, который средство выделения, вероятно, выделит данный запрос на блок памяти размера
size
.hint
параметром является битовое поле, которое Вы не должны в настоящее время использовать.Обсуждение
Посмотрите тему управления памятью для получения информации о создании пользовательского объекта CFAllocator и, как часть той процедуры, шагов для создания должным образом инициализированный
CFAllocatorContext
структура.Доступность
Доступный в iOS 2.0 и позже.
-
Ссылка на объект CFAllocator.
Объявление
Swift
typealias CFAllocatorRef = CFAllocator
Objective C
typedef const struct __CFAllocator *CFAllocatorRef;
Обсуждение
CFAllocatorRef
тип является ссылочным типом, используемым во многих Базовых параметрах Основы и функциональных результатах. Это относится к объекту CFAllocator, выделяющему, перераспределяющему и освобождающему память для Базовых объектов Основы.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в iOS 2.0 и позже.
-
CFAllocator обеспечивает следующие предопределенные средства выделения. В целом необходимо использовать
kCFAllocatorDefault
если одно из особых обстоятельств не существует ниже.Объявление
Swift
let kCFAllocatorDefault: CFAllocator! let kCFAllocatorSystemDefault: CFAllocator! let kCFAllocatorMalloc: CFAllocator! let kCFAllocatorMallocZone: CFAllocator! let kCFAllocatorNull: CFAllocator! let kCFAllocatorUseContext: CFAllocator!
Objective C
const CFAllocatorRef kCFAllocatorDefault; const CFAllocatorRef kCFAllocatorSystemDefault; const CFAllocatorRef kCFAllocatorMalloc; const CFAllocatorRef kCFAllocatorMallocZone; const CFAllocatorRef kCFAllocatorNull; const CFAllocatorRef kCFAllocatorUseContext;
Константы
-
kCFAllocatorDefault
Это - синоним для
NULL
.Доступный в iOS 2.0 и позже.
-
kCFAllocatorSystemDefault
Системное средство выделения по умолчанию.
Редко необходимо использовать это.
Доступный в iOS 2.0 и позже.
-
kCFAllocatorMalloc
Это средство выделения использование
malloc()
,realloc()
, иfree()
.Обычно Вы не должны использовать это средство выделения, использовать
kCFAllocatorDefault
вместо этого. Это средство выделения полезно какbytesDeallocator
в CFData илиcontentsDeallocator
в CFString, где память была получена в результатеmalloc
введите функции.Доступный в iOS 2.0 и позже.
-
kCFAllocatorMallocZone
Это средство выделения явно использует значение по умолчанию malloc зона, возвращенная
malloc_default_zone()
.Когда объект безопасен быть выделенным в неотсканированной памяти, необходимо только использовать это.
Доступный в iOS 2.0 и позже.
-
kCFAllocatorNull
Это средство выделения ничего не делает — оно не выделяет памяти.
Это средство выделения полезно как
bytesDeallocator
в CFData илиcontentsDeallocator
в CFString, где не должна быть освобождена память.Доступный в iOS 2.0 и позже.
-
kCFAllocatorUseContext
Специальный параметр средства выделения
CFAllocatorCreate
— это использует функции, данные в контексте для выделения средства выделения.Доступный в iOS 2.0 и позже.
-