Ссылка CFStringTokenizer
CFStringTokenizer позволяет Вам маркировать строки в слова, предложения или абзацы нейтральным языком способом. Это поддерживает языки, такие как японский язык и китайцы, не разграничивающие слова пробелами, а также немецкие составные объекты de-соединения. Можно получить латинскую запись для маркеров. Это также обеспечивает определение языка API.
Можно использовать CFStringTokenizer для повреждения строки в маркеры (подстроки) на основе слов, предложений или абзацев. При создании токенизатора можно предоставить опции далее изменить токенизацию — посмотрите Модификаторы Токенизации.
Кроме того, с CFStringTokenizer:
Вы можете немецкие составные объекты de-составного-объекта
Можно идентифицировать язык, используемый в строке (использование
CFStringTokenizerCopyBestStringLanguage
)Можно получить латинскую запись для маркеров
Для нахождения маркера, включающего символ, указанный индексом символа, и устанавливающего его как текущий маркер Вы вызываете CFStringTokenizerGoToTokenAtIndex
. Чтобы совершенствоваться к следующему маркеру и установить его как текущий маркер, Вы вызываете CFStringTokenizerAdvanceToNextToken
. Для получения диапазона текущего маркера Вы вызываете CFStringTokenizerGetCurrentTokenRange
. Можно использовать CFStringTokenizerCopyCurrentTokenAttribute
получить атрибут текущего маркера. Если текущий маркер является составным объектом, можно вызвать CFStringTokenizerGetCurrentSubTokens
получать подмаркеры или полученные подмаркеры, содержавшиеся в составном маркере. Для предположения языка строки Вы вызываете CFStringTokenizerCopyBestStringLanguage
.
-
Возвращает токенизатор для данной строки.
Объявление
Swift
func CFStringTokenizerCreate(_
alloc
: CFAllocator!, _string
: CFString!, _range
: CFRange, _options
: CFOptionFlags, _locale
: CFLocale!) -> CFStringTokenizer!Objective C
CFStringTokenizerRef CFStringTokenizerCreate ( CFAllocatorRef alloc, CFStringRef string, CFRange range, CFOptionFlags options, CFLocaleRef locale );
Параметры
alloc
Средство выделения для использования для выделения памяти для нового объекта. Передача
NULL
илиkCFAllocatorDefault
использовать текущее средство выделения по умолчанию.string
Строка для маркирования.
range
Диапазон символов в
string
маркировать.options
Опция модуля токенизации, указывающая как
string
должен маркироваться. Опции могут быть изменены путем добавления опций модификатора модуля сказать токенизатору подготавливать указанные атрибуты, когда он маркируетstring
.Для возможных значений посмотрите Модификаторы Токенизации.
locale
Локаль, указывающая язык - или специфичное для области поведение для токенизации. Можно передать
NULL
для использования системной локали по умолчанию, несмотря на то, что это обычно не рекомендуется — вместо этого, используютCFLocaleCopyCurrent
указать локаль текущего пользователя.Для получения дополнительной информации посмотрите Модификаторы Токенизации.
Возвращаемое значение
Токенизатор для анализа диапазона
range
изstring
для данной локали и опций. Владение соблюдает Создать Правило.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.5 и позже.
-
Устанавливает строку для токенизатора.
Объявление
Swift
func CFStringTokenizerSetString(_
tokenizer
: CFStringTokenizer!, _string
: CFString!, _range
: CFRange)Objective C
void CFStringTokenizerSetString ( CFStringTokenizerRef tokenizer, CFStringRef string, CFRange range );
Параметры
tokenizer
Токенизатор.
string
Строка для токенизатора для маркирования.
range
Диапазон строки для маркирования. Диапазон символов в строке, которая будет маркироваться. Указанный диапазон не должен превышать длину строки.
Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.5 и позже.
-
Совершенствует токенизатор к следующему маркеру и наборам что как текущий маркер.
Объявление
Swift
func CFStringTokenizerAdvanceToNextToken(_
tokenizer
: CFStringTokenizer!) -> CFStringTokenizerTokenTypeObjective C
CFStringTokenizerTokenType CFStringTokenizerAdvanceToNextToken ( CFStringTokenizerRef tokenizer );
Параметры
tokenizer
Объект CFStringTokenizer.
Возвращаемое значение
Тип маркера, если токенизатор преуспел в том, чтобы найти маркер и установить его как текущий маркер. Возвраты
kCFStringTokenizerTokenNone
если токенизатору не удалось найти маркер. Для возможных значений посмотрите CFStringTokenizerTokenType.Обсуждение
Если нет никакого предыдущего вызова к
CFStringTokenizerGoToTokenAtIndex
илиCFStringTokenizerAdvanceToNextToken
, функция считает первый маркер в диапазоне указаннымCFStringTokenizerCreate
. Если существует предыдущее, успешное, вызовите кCFStringTokenizerGoToTokenAtIndex
илиCFStringTokenizerAdvanceToNextToken
и существует текущий маркер, доходы к следующему маркеру. Если маркер найден, он установлен как текущий маркер и функциональные возвратыtrue
; иначе текущий маркер лишен законной силы и функциональные возвратыfalse
.Можно получить диапазон и атрибут маркерного вызова
CFStringTokenizerGetCurrentTokenRange
иCFStringTokenizerCopyCurrentTokenAttribute
. Если маркер является составным объектом (с типомkCFStringTokenizerTokenHasSubTokensMask
илиkCFStringTokenizerTokenHasDerivedSubTokensMask
), можно получить его подмаркеры и (или) полученные подмаркеры путем вызоваCFStringTokenizerGetCurrentSubTokens
.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.5 и позже.
См. также
-
Находит маркер, включающий символ в данный индекс и устанавливающий его как текущий маркер.
Объявление
Swift
func CFStringTokenizerGoToTokenAtIndex(_
tokenizer
: CFStringTokenizer!, _index
: CFIndex) -> CFStringTokenizerTokenTypeObjective C
CFStringTokenizerTokenType CFStringTokenizerGoToTokenAtIndex ( CFStringTokenizerRef tokenizer, CFIndex index );
Параметры
tokenizer
Объект CFStringTokenizer.
index
Индекс символа в строке для
tokenizer
.Возвращаемое значение
Тип маркера, если токенизатор преуспел в том, чтобы найти маркер и установить его как текущий маркер. Возвраты
kCFStringTokenizerTokenNone
если токенизатору не удалось найти маркер. Для возможных значений посмотрите CFStringTokenizerTokenType.Обсуждение
Можно получить диапазон и атрибут маркерного вызова
CFStringTokenizerGetCurrentTokenRange
иCFStringTokenizerCopyCurrentTokenAttribute
. Если маркер является составным объектом (с типомkCFStringTokenizerTokenHasSubTokensMask
илиkCFStringTokenizerTokenHasDerivedSubTokensMask
), можно получить его подмаркеры и (или) полученные подмаркеры путем вызоваCFStringTokenizerGetCurrentSubTokens
.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.5 и позже.
См. также
-
Возвращает данный атрибут текущего маркера.
Объявление
Swift
func CFStringTokenizerCopyCurrentTokenAttribute(_
tokenizer
: CFStringTokenizer!, _attribute
: CFOptionFlags) -> AnyObject!Objective C
CFTypeRef CFStringTokenizerCopyCurrentTokenAttribute ( CFStringTokenizerRef tokenizer, CFOptionFlags attribute );
Параметры
tokenizer
Объект CFStringTokenizer.
attribute
Маркерный атрибут для получения. Значение должно быть
kCFStringTokenizerAttributeLatinTranscription
, илиkCFStringTokenizerAttributeLanguage
.Возвращаемое значение
Атрибут, указанный
attribute
из текущего маркера, илиNULL
если текущий маркер не имеет указанного атрибута или нет никакого текущего маркера. Владение соблюдает Создать Правило.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.5 и позже.
-
Возвращает диапазон текущего маркера.
Объявление
Swift
func CFStringTokenizerGetCurrentTokenRange(_
tokenizer
: CFStringTokenizer!) -> CFRangeObjective C
CFRange CFStringTokenizerGetCurrentTokenRange ( CFStringTokenizerRef tokenizer );
Параметры
tokenizer
Объект CFStringTokenizer.
Возвращаемое значение
Диапазон текущего маркера, или
{
kCFNotFound
,0}
если нет никакого текущего маркера.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.5 и позже.
-
Получает подмаркеры или полученные подмаркеры, содержавшиеся в составном маркере.
Объявление
Swift
func CFStringTokenizerGetCurrentSubTokens(_
tokenizer
: CFStringTokenizer!, _ranges
: UnsafeMutablePointer<CFRange>, _maxRangeLength
: CFIndex, _derivedSubTokens
: CFMutableArray!) -> CFIndexObjective C
CFIndex CFStringTokenizerGetCurrentSubTokens ( CFStringTokenizerRef tokenizer, CFRange *ranges, CFIndex maxRangeLength, CFMutableArrayRef derivedSubTokens );
Параметры
tokenizer
Объект CFStringTokenizer.
ranges
По возврату, массиву CFRanges, содержащего диапазоны подмаркеров. Диапазоны относительно строки, указанной к CFStringTokenizerCreate. Этот параметр может быть
NULL
.maxRangeLength
Максимальное количество диапазонов для возврата.
derivedSubTokens
CFMutableArray, к которому должны быть добавлены полученные подмаркеры. Этот параметр может быть
NULL
.Возвращаемое значение
Число диапазонов возвратилось.
Обсуждение
Если тип маркера
kCFStringTokenizerTokenNone
,ranges
массив иderivedSubTokens
массив является нетронутым, и возвращаемое значение0
.Если тип маркера
kCFStringTokenizerTokenNormal
,ranges
массиву заполнили один элемент со всем диапазоном маркера (еслиmaxRangeLength
> = 1) и строка, взятая от всего маркерного диапазона, добавляется кderivedSubTokens
массив и возвращаемое значение1
.Если тип маркера
kCFStringTokenizerTokenHasSubTokensMask
илиkCFStringTokenizerTokenHasDerivedSubTokensMask
, массив диапазонов заполнен в столькими же элементов, сколько существуют подмаркеры (до пределаmaxRangeLength
).derivedSubTokens
массив будет иметь sub маркеры, добавил, даже когда sub маркер является подстрокой маркера. Если тип маркераkCFStringTokenizerTokenHasSubTokensMask
, обычные неполученные подмаркеры добавляются кderivedSubTokens
массив.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.5 и позже.
-
Предполагает язык данной строки и возвращает предположение как строку BCP 47.
Объявление
Swift
func CFStringTokenizerCopyBestStringLanguage(_
string
: CFString!, _range
: CFRange) -> CFString!Objective C
CFStringRef CFStringTokenizerCopyBestStringLanguage ( CFStringRef string, CFRange range );
Параметры
string
Строка для тестирования для идентификации языка.
range
Диапазон
string
использовать для теста. ЕслиNULL
, первая несколько сотен символов строки исследованы.Возвращаемое значение
Язык в форме BCP 47, или
NULL
если язык вstring
не мог быть идентифицирован. Владение соблюдает Создать Правило.Обсуждение
Результат, как гарантируют, не будет точен. Как правило, функция требует, чтобы 200-400 символов надежно предположили язык строки.
CFStringTokenizer распознает следующие языки:
площадь (арабский язык), bg (болгарский язык), cs (чешский язык), da (датский язык), de (немецкий язык), el (греческий язык), en (английский язык), es (испанский язык), fi (финский язык), франк (французский язык), он (иврит), час (хорватский язык), hu (венгерский язык), (исландец), это (итальянский язык), ja (японский язык), ko (корейский язык), nb (норвежский Bokmål), nl (голландский), мн (польский язык), pt (португальский язык), ro (румынский язык), рутений (русский язык), sk (словацкий язык), sv (шведский язык), th (тайский язык), TR (турецкий язык), Великобритания (украинец), ж-Ханс (Упрощенный китайский), zh-Hant (Традиционные китайцы).
Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.5 и позже.
-
Возвращает идентификатор типа для CFStringTokenizer.
Объявление
Swift
func CFStringTokenizerGetTypeID() -> CFTypeID
Objective C
CFTypeID CFStringTokenizerGetTypeID ( void );
Возвращаемое значение
Идентификатор типа для CFStringTokenizer.
Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.5 и позже.
-
Ссылка на объект CFStringTokenizer.
Объявление
Swift
typealias CFStringTokenizerRef = CFStringTokenizer
Objective C
typedef struct __CFStringTokenizer * CFStringTokenizerRef;
Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.5 и позже.
-
Опции токенизации используются с
CFStringTokenizerCreate
указать, как должна маркироваться строкаОбъявление
Swift
var kCFStringTokenizerUnitWord: Int { get } var kCFStringTokenizerUnitSentence: Int { get } var kCFStringTokenizerUnitParagraph: Int { get } var kCFStringTokenizerUnitLineBreak: Int { get } var kCFStringTokenizerUnitWordBoundary: Int { get } var kCFStringTokenizerAttributeLatinTranscription: Int { get } var kCFStringTokenizerAttributeLanguage: Int { get }
Objective C
enum { kCFStringTokenizerUnitWord = 0, kCFStringTokenizerUnitSentence = 1, kCFStringTokenizerUnitParagraph = 2, kCFStringTokenizerUnitLineBreak = 3, kCFStringTokenizerUnitWordBoundary = 4, kCFStringTokenizerAttributeLatinTranscription = 1L << 16, kCFStringTokenizerAttributeLanguage = 1L << 17 };
Константы
-
kCFStringTokenizerUnitWord
kCFStringTokenizerUnitWord
Указывает, что строка должна маркироваться словом.
locale
параметрCFStringTokenizerCreate
проигнорирован.Доступный в OS X v10.5 и позже.
-
kCFStringTokenizerUnitSentence
kCFStringTokenizerUnitSentence
Указывает, что строка должна маркироваться предложением.
locale
параметрCFStringTokenizerCreate
проигнорирован.Доступный в OS X v10.5 и позже.
-
kCFStringTokenizerUnitParagraph
kCFStringTokenizerUnitParagraph
Указывает, что строка должна маркироваться абзацем.
locale
параметрCFStringTokenizerCreate
проигнорирован.Доступный в OS X v10.5 и позже.
-
kCFStringTokenizerUnitLineBreak
kCFStringTokenizerUnitLineBreak
Указывает, что строка должна маркироваться с методической точностью повреждение.
locale
параметрCFStringTokenizerCreate
проигнорирован.Доступный в OS X v10.5 и позже.
-
kCFStringTokenizerUnitWordBoundary
kCFStringTokenizerUnitWordBoundary
Указывает, что строка должна маркироваться чувствительной к локали границей слова.
Можно использовать эту константу в обнаружении диапазона двойного щелчка и целом поиске слова. Это чувствительно к локали. Если локаль
en_US_POSIX
, двоеточие (U+003A) обрабатывается как разделитель слов. Еслиlocale
параметрCFStringTokenizerCreate
NULL
, локаль от глобальной переменнойAppleTextBreakLocale
предпочтение используется, если это доступно; иначе значения по умолчанию локали к первой локали вAppleLanguages
.kCFStringTokenizerUnitWordBoundary
также возвраты располагают с интервалами между словами как маркер.Доступный в OS X v10.5 и позже.
-
kCFStringTokenizerAttributeLatinTranscription
kCFStringTokenizerAttributeLatinTranscription
Используемый с
kCFStringTokenizerUnitWord
, говорит токенизатору подготавливать латинскую запись, когда это маркирует строку.Доступный в OS X v10.5 и позже.
-
kCFStringTokenizerAttributeLanguage
kCFStringTokenizerAttributeLanguage
Говорит токенизатору подготавливать язык (указанный как RFC 3066bis строка), когда это маркирует строку.
Используемый с
kCFStringTokenizerUnitSentence
илиkCFStringTokenizerUnitParagraph
.Доступный в OS X v10.5 и позже.
Обсуждение
Вы используете опции модуля токенизации с
CFStringTokenizerCreate
указать, как должна маркироваться строка.Вы используете модификаторы вместе с модулем токенизации для изменения способа, которым маркируется строка.
Вы используете спецификаторы атрибута, чтобы сказать токенизатору подготавливать указанный атрибут, когда это маркирует данную строку. Можно получить значение атрибута путем вызова
CFStringTokenizerCopyCurrentTokenAttribute
с одной из опций атрибута.Чувствительность локали опций модуля токенизации может измениться в будущем выпуске.
-
-
Типы маркера, возвращенные
CFStringTokenizerGoToTokenAtIndex
иCFStringTokenizerAdvanceToNextToken
.Объявление
Swift
struct CFStringTokenizerTokenType : RawOptionSetType { init(_
rawValue
: CFOptionFlags) init(rawValuerawValue
: CFOptionFlags) static var None: CFStringTokenizerTokenType { get } static var Normal: CFStringTokenizerTokenType { get } static var HasSubTokensMask: CFStringTokenizerTokenType { get } static var HasDerivedSubTokensMask: CFStringTokenizerTokenType { get } static var HasHasNumbersMask: CFStringTokenizerTokenType { get } static var HasNonLettersMask: CFStringTokenizerTokenType { get } static var IsCJWordMask: CFStringTokenizerTokenType { get } }Objective C
enum { kCFStringTokenizerTokenNone = 0, kCFStringTokenizerTokenNormal = 1, kCFStringTokenizerTokenHasSubTokensMask = 1L << 1, kCFStringTokenizerTokenHasDerivedSubTokensMask = 1L << 2, kCFStringTokenizerTokenHasHasNumbersMask = 1L << 3, kCFStringTokenizerTokenHasNonLettersMask = 1L << 4, kCFStringTokenizerTokenIsCJWordMask = 1L << 5 }; typedef CFOptionFlags CFStringTokenizerTokenType;
Константы
-
None
kCFStringTokenizerTokenNone
Не имеет никакого маркера.
Доступный в OS X v10.5 и позже.
-
Normal
kCFStringTokenizerTokenNormal
Имеет нормальный маркер.
Доступный в OS X v10.5 и позже.
-
HasSubTokensMask
kCFStringTokenizerTokenHasSubTokensMask
Соедините маркер, который может содержать подмаркеры, но без полученных подмаркеров.
Можно получить подмаркеры путем вызова
CFStringTokenizerGetCurrentSubTokens
.Доступный в OS X v10.5 и позже.
-
HasDerivedSubTokensMask
kCFStringTokenizerTokenHasDerivedSubTokensMask
Соедините маркер, который может содержать полученные подмаркеры.
Можно получить подмаркеры и полученные подмаркеры путем вызова
CFStringTokenizerGetCurrentSubTokens
.Доступный в OS X v10.5 и позже.
-
HasHasNumbersMask
kCFStringTokenizerTokenHasHasNumbersMask
Кажется, содержит число.
Доступный в OS X v10.5 и позже.
-
HasNonLettersMask
kCFStringTokenizerTokenHasNonLettersMask
Содержит пунктуацию, символы, и т.д.
Учитывая путь работает разрыв слова Unicode, это означает, что это - автономная пунктуация или символ символа или строка такого.
Доступный в OS X v10.5 и позже.
-
IsCJWordMask
kCFStringTokenizerTokenIsCJWordMask
Содержит кану и/или идеограммы.
Доступный в OS X v10.5 и позже.
Обсуждение
Посмотрите http://www.unicode.org/reports/tr29/#Word_Boundaries для подробного описания границ слова.
Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.5 и позже.
-