Наборы символов
В Базовой Основе набор символов, как представлено объектом CFCharacterSet, представляет ряд символов Unicode. Функции могут использовать наборы символов для собирания в группу символов для поиска и парсинга операций, так, чтобы они могли найти или исключить любой определенный набор символов во время поиска. Кроме тестирования на членство в наборе символов, объект набора символов просто содержит ряд символьных значений для ограничения операций на строках.
Вы используете наборы символов в поиске, парсинге и операциях сравнения, включающих строки. Программируемые интерфейсы, требующие ссылок на объекты CFCharacterSet, в настоящее время разрабатываются и в Базовой Основе и в Углероде.
Для получения объекта CFCharacterSet, который может быть передан в функцию можно или использовать один из предопределенных наборов символов или создать собственное. Использовать один из предопределенных наборов — включая такие вещи как пробел, алфавитно-цифровые символы и десятичные цифры — вызов CFCharacterSetGetPredefined
с одним из CFCharacterSetPredefinedSet
константы. Несколько функций CFCharacterSet создают наборы символов из строк и побитово отображенных данных, и другие позволяют Вам создавать непостоянные наборы символов. Можно использовать предопределенный набор символов в качестве начальной точки для создания пользовательского набора путем создания непостоянной копии из него и изменения этого.
Поскольку наборы символов часто участвуют в критическом по отношению к производительности коде, необходимо знать об аспектах их использования, которое может влиять на производительность приложения. Непостоянные наборы символов являются обычно намного более дорогими, чем неизменные наборы символов. Они используют больше памяти и являются дорогостоящими для инвертирования (работа, часто выполняемая в сканировании строки). Из-за этого необходимо следовать этим инструкциям:
Создайте как можно меньше непостоянных наборов символов.
Наборы символов кэша (в глобальном словаре, возможно) вместо того, чтобы постоянно воссоздать их.
При создании пользовательского набора, который не должен изменяться после создания, сделайте неизменную копию набора последнего символа для фактического использования и избавьтесь от рабочего непостоянного набора символов.