Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Ссылка платформы CoreFoundation ссылка CFAllocator

Опции
Развертывание Target:

На этой странице
Язык:

Ссылка 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) -> CFIndex

    Objective 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. A NULL результат указывает или отказ выделить память или некоторый другой результат, точная интерпретация которого определяется значениями определенных параметров и присутствия или отсутствия обратных вызовов в контексте средства выделения. Подводить итог, a NULL результат может означать одно из следующего:

    • Ошибка произошла в попытке выделить память, такую как недостаточное свободное пространство.

    • Нет 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, info info: UnsafeMutablePointer<Void>, retain retain: CFAllocatorRetainCallBack, release release: CFAllocatorReleaseCallBack, copyDescription copyDescription: CFAllocatorCopyDescriptionCallBack, allocate allocate: CFAllocatorAllocateCallBack, reallocate reallocate: CFAllocatorReallocateCallBack, deallocate deallocate: CFAllocatorDeallocateCallBack, preferredSize preferredSize: 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 и позже.