Используя средства выделения в функциях создания
Непрозрачный тип каждой Базовой Основы имеет одну или более функций создания, функции, создающие и возвращающие объект того типа, инициализированного определенным способом. Все функции создания берут в качестве их первого параметра ссылку на объект-распределитель (CFAllocatorRef
). Некоторые функции могут также иметь параметры средства выделения для специализированного выделения и целей освобождения.
У Вас есть несколько опций для параметров ссылки средства выделения:
Можно передать константу
kCFAllocatorSystemDefault
; это указывает универсальное системное средство выделения (который является начальным средством выделения по умолчанию).Можно передать
NULL
указать текущее средство выделения по умолчанию (который мог бы быть пользовательским средством выделения или универсальным системным средством выделения). Это совпадает с передачейkCFAllocatorDefault
.Можно передать константу
kCFAllocatorNull
который указывает средство выделения, не выделяющее — это - ошибка попытаться использовать его. Некоторые функции создания имеют параметр для специального средства выделения, используемого, чтобы перераспределить или освободить запоминающее устройство; путем указанияkCFAllocatorNull
для параметра Вы предотвращаете автоматическое перераспределение или освобождение.Можно получить ссылку на средство выделения, используемое другим Базовым объектом Основы с
CFGetAllocator
функция и передача та ссылка в. Этот метод позволяет Вам помещать связанные объекты в память «зона» при помощи того же средства выделения для выделения их.Можно передать ссылку на пользовательское средство выделения (см. Создающие Пользовательские Средства выделения).
Если необходимо использовать пользовательское средство выделения, и Вы хотите сделать его средством выделения по умолчанию, желательно сначала получить ссылку на текущее средство выделения по умолчанию с помощью CFAllocatorGetDefault
функция и хранилище это в локальной переменной. Когда Вы закончите с помощью пользовательского средства выделения, используйте CFAllocatorSetDefault
функционируйте для сброса сохраненного средства выделения как средства выделения по умолчанию.