Ссылка 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Невведенный указатель на блок памяти для перераспределения к новому размеру. Если
ptrNULLиnewsizeбольше, чем 0, память выделяется (использованиеallocateфункциональный обратный вызов контекста средства выделения). ЕслиptrNULLиnewsize0, результат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() -> CFTypeIDObjective 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(versionversion: 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). Если Вы устанавливаете этот обратный вызов вNULLCFAllocatorReallocateфункциональные возвратыNULLв большинстве случаев, когда это пытается использовать это средство выделения.
deallocateПрототип для функционального обратного вызова, освобождающего данный блок памяти. В реализации этой функции сделайте блок памяти указанным
ptrдоступный для последующего повторного использования средством выделения, но недоступный продолжительному использованию программой.ptrпараметр не может бытьNULLи еслиptrпараметр не является блоком памяти, ранее выделенной средством выделения, результаты не определены; аварийное завершение программы может произойти. Можно установить этот обратный вызов вNULL, когдаCFAllocatorDeallocateфункция не имеет никакого эффекта.preferredSizeПрототип для функционального обратного вызова, определяющего, существует ли достаточно свободной памяти для удовлетворения запроса. В реализации этой функции возвратите фактический размер, который средство выделения, вероятно, выделит данный запрос на блок памяти размера
size.hintпараметром является битовое поле, которое Вы не должны в настоящее время использовать.Обсуждение
Посмотрите тему управления памятью для получения информации о создании пользовательского объекта CFAllocator и, как часть той процедуры, шагов для создания должным образом инициализированный
CFAllocatorContextструктура.Доступность
Доступный в iOS 2.0 и позже.
-
Ссылка на объект CFAllocator.
Объявление
Swift
typealias CFAllocatorRef = CFAllocatorObjective 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 и позже.
-
