Варианты объектов

Непрозрачные типы входят до трех основных вариантов или «разновидности», на основе характеристик editability и расширяемости, ожидаемой в их объектах:

Непостоянные объекты доступны для редактирования, означая, что может быть изменено их содержание. Неизменные объекты не доступны для редактирования; как только они создаются, они не могут быть изменены. Любая попытка изменить неизменный объект обычно приводит к ошибке некоторого вида. Объект фиксированного размера имеет максимальный предел, до которого это может расти; в случае CFString, который был бы числом символов, и для набора, предел будет числом элементов.

Некоторые непрозрачные типы, такие как CFString и CFArray, могут создать все три разновидности объектов. Большинство непрозрачных типов может создать неизменные объекты фиксированного размера и обычно иметь по крайней мере одну неполную функцию создания для выполнения работы (такой как CFArrayCreate). Детерминант для непостоянного фиксированного размера по сравнению с переменным размером является значением параметра способности или максимальной длины в ТипеCreateMutable функция; любые положительные результаты значения в объекте фиксированного размера, но 0 указывает объект переменного размера.

Ссылки на непостоянные объекты включают «Непостоянный» в имя типа, например, CFMutableStringRef.