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