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