Полиморфные функции
Базовая Основа обеспечивает несколько полиморфных функций. Эти функции могут взять любой Базовый объект Основы в качестве параметра и (в одном экземпляре, CFRetain
) может возвратить любой Базовый объект Основы. Этим параметрам и возвращаемым значениям дают тип CFTypeRef
, универсальный тип ссылки на объект. CFType походит на корневой класс в объектно-ориентированных языках, потому что его функции могут быть снова использованы всеми другими объектами.
Вы используете полиморфные функции для операций, которые характерны для всех Базовых объектов Основы:
Подсчет ссылок.
CFType обеспечивает несколько полиморфных функций для управления и получения подсчета ссылок объектов. См. Руководство по программированию управления памятью для Базовой Основы для больше об этих функциях.
Сравнение объектов.
CFEqual
функция сравнивает любые два Базовых объекта Основы (см. Сравнение Объектов). Основание равенства зависит от типа сравненных объектов. Например, если оба - объекты CFString, тест включает познаковое сравнение.Хеширование объектов.
CFHash
функционируйте возвращает уникальный хэш-код, идентифицирующий Базовый объект Основы (см. Сравнение Объектов). Можно использовать хэш-код в качестве табличного адреса в структуре хэш-таблицы. Если два объекта равны (как определеноCFEqual
функция), у них должно быть то же значение хэш-функции.Проверка объектов.
CFType дает Вам средние значения, чтобы проверить объекты и таким образом узнать об их содержании и типе, которому они «принадлежат».
CFCopyDescription
функционируйте возвращает строку (более точно, ссылка на объект CFString), который описывает объект.CFCopyTypeIDDescription
функция, берущая aCFTypeID
вместо aCFTypeRef
параметр, возвращает строковую ссылку, описывающую непрозрачный тип, идентифицированный идентификатором типа. Эти функции прежде всего предназначаются для помощи отладке; посмотрите Объекты Проверки для больше на этих функциях.Можно также определить непрозрачный тип, которому в общем типизированный объект принадлежит путем получения его идентификатора типа с
CFGetTypeID
функционируйте и затем сравнение того значения с известными идентификаторами типов. Посмотрите Объекты Проверки для больше на этой задаче.