Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы CoreFoundation ссылка CFSet

Опции
Развертывание Target:

На этой странице
Язык:

Ссылка CFSet

CFSet и его полученный непостоянный тип, Ссылка CFMutableSet, предоставляют поддержку для математического понятия набора. Набор, и в его математическом смысле и в реализации CFSet, является неупорядоченным набором отличных элементов. CFSet создает статические наборы, и CFMutableSet создает динамические наборы.

Используйте сумки или наборы как альтернатива массивам, когда порядок элементов не важен и производительность в тестировании, содержится ли значение в наборе, рассмотрение — в то время как массивы упорядочиваются, тестирование на членство медленнее, чем с сумками или наборами. Используйте сумки по наборам, если Вы хотите позволить двойные значения в своих наборах.

Вы создаете статический объект набора, использующий любого CFSetCreate или CFSetCreateCopy функция. Эти функции возвращают набор, содержащий значения, в которых Вы передаете как параметры. (Обратите внимание на то, что наборы не могут содержать NULL указатели; в большинстве случаев, тем не менее, можно использовать kCFNull постоянный вместо этого.) Когда набор создавался, значения не копируются, но сохранили использование сохранить обратного вызова, предоставленного. Точно так же, когда значение удалено из набора, оно выпущено с помощью обратного вызова выпуска.

CFSet обеспечивает функции для запросов значений набора. CFSetGetCount возвращает число значений в наборе, CFSetContainsValue функционируйте проверки, если значение находится в наборе, и CFSetGetValues возвращает массив C, содержащий все значения в наборе.

CFSet “бесплатный соединенный мостом” с его дубликатом Основы Какао, NSSet. Это означает, что Базовый тип Основы является взаимозаменяемым в вызовах функции или вызовах метода с соединенным мостом объектом Основы. Поэтому в методе, где Вы видите NSSet * параметр, можно передать в a CFSetRef, и в функции, где Вы видите a CFSetRef параметр, можно передать в экземпляре NSSet. Это также применяется к конкретным подклассам NSSet. Посмотрите Бесплатные Соединенные мостом Типы для получения дополнительной информации о бесплатном образовании моста.

Функции

  • Создает неизменный объект CFSet, содержащий предоставленные значения.

    Объявление

    Swift

    func CFSetCreate(_ allocator: CFAllocator!, _ values: UnsafeMutablePointer<UnsafePointer<Void>>, _ numValues: CFIndex, _ callBacks: UnsafePointer<CFSetCallBacks>) -> CFSet!

    Objective C

    CFSetRef CFSetCreate ( CFAllocatorRef allocator, const void **values, CFIndex numValues, const CFSetCallBacks *callBacks );

    Параметры

    allocator

    Средство выделения для использования для выделить память для нового набора и его хранение для значений. Передача NULL или kCFAllocatorDefault использовать текущее средство выделения по умолчанию.

    values

    Массив C значений размера указателя, чтобы быть в новом наборе. Этот параметр может быть NULL если numValues параметр 0. Массив C не изменен или освобожден этой функцией. values должен быть указатель на массив C, по крайней мере, numValues элементы.

    numValues

    Число значений для копирования с values C выстраивают в новом наборе.

    callBacks

    Указатель на a CFSetCallBacks структура, инициализированная с обратными вызовами для использования для сохранения, выпустите, опишите и сравните значения в наборе. Копия содержания структуры обратных вызовов сделана, так, чтобы указатель на структуру на штабеле мог быть передан в или мог быть снова использован для многократных созданий набора.

    Это значение может быть NULL, который обрабатывается как допустимая структура версии 0 со всеми полями NULL. Если набор содержит только объекты CFType, то передайте kCFTypeSetCallBacks использовать функции обратного вызова по умолчанию.

    Возвращаемое значение

    Новый неизменный набор, или NULL если была проблема, создающая объект. Владение соблюдает Создать Правило.

    Обсуждение

    Если какое-либо значение, помещенное в набор, не является тем, понятым под одной из функций обратного вызова, поведение, когда та функция обратного вызова используется, не определено.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Создает неизменный набор, содержащий значения существующего набора.

    Объявление

    Swift

    func CFSetCreateCopy(_ allocator: CFAllocator!, _ theSet: CFSet!) -> CFSet!

    Objective C

    CFSetRef CFSetCreateCopy ( CFAllocatorRef allocator, CFSetRef theSet );

    Параметры

    allocator

    Средство выделения для использования для выделения памяти для нового набора и его хранения для значений. Передача NULL или kCFAllocatorDefault использовать текущее средство выделения по умолчанию.

    theSet

    Набор для копирования.

    Возвращаемое значение

    Новый набор, содержащий те же значения как theSet, или NULL если была проблема, создающая объект. Владение соблюдает Создать Правило.

    Обсуждение

    Указатель оценивает от theSet копируются в новый набор, и значения сохраняются новым набором. Количество нового набора совпадает с количеством theSet. Новый набор использует те же обратные вызовы как theSet.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает булевскую переменную, указывающую, содержит ли набор данное значение.

    Объявление

    Swift

    func CFSetContainsValue(_ theSet: CFSet!, _ value: UnsafePointer<Void>) -> Boolean

    Objective C

    Boolean CFSetContainsValue ( CFSetRef theSet, const void *value );

    Параметры

    theSet

    Набор для поиска.

    value

    Значение для соответствия в theSet. Сравнения сделаны с помощью равного обратного вызова, предоставленного когда theSet создавался. Если равный обратный вызов был NULL, равенство указателя (в C, ==) используется.

    Возвращаемое значение

    true если value содержится в theSet, иначе false.

    Обсуждение

    Эта функция использует равный обратный вызов. value и все элементы в наборе должны быть поняты под равным обратным вызовом.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает число значений в настоящее время в наборе.

    Объявление

    Swift

    func CFSetGetCount(_ theSet: CFSet!) -> CFIndex

    Objective C

    CFIndex CFSetGetCount ( CFSetRef theSet );

    Параметры

    theSet

    Набор для исследования.

    Возвращаемое значение

    Число значений в theSet.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает число значений в наборе, соответствующих данное значение.

    Объявление

    Swift

    func CFSetGetCountOfValue(_ theSet: CFSet!, _ value: UnsafePointer<Void>) -> CFIndex

    Objective C

    CFIndex CFSetGetCountOfValue ( CFSetRef theSet, const void *value );

    Параметры

    theSet

    Набор для исследования.

    value

    Значение, которое можно искать в theSet. Сравнения сделаны с помощью равного обратного вызова, предоставленного когда theSet создавался. Если равный обратный вызов был NULL, равенство указателя (в C, ==) используется.

    Возвращаемое значение

    Число раз value происходит в theSet. По определению наборы не могут содержать двойные значения, так возвраты 1 если value содержится в theSet, иначе 0.

    Обсуждение

    Эта функция использует равный обратный вызов. value и все элементы в наборе должны быть поняты под равным обратным вызовом.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Получает указанное значение из набора.

    Объявление

    Swift

    func CFSetGetValue(_ theSet: CFSet!, _ value: UnsafePointer<Void>) -> UnsafePointer<Void>

    Objective C

    const void * CFSetGetValue ( CFSetRef theSet, const void *value );

    Параметры

    theSet

    Набор для исследования.

    value

    Значение, которое можно искать в theSet. Сравнения сделаны с помощью равного обратного вызова, предоставленного когда theSet создавался. Если равный обратный вызов был NULL, равенство указателя (в C, ==) используется.

    Возвращаемое значение

    Указатель на требуемое значение, или NULL если значение не находится в theSet. Если значение является Базовым объектом Основы, Владение соблюдает Получить Правило.

    Обсуждение

    Так как эта функция использует равный обратный вызов, value все элементы в наборе должны быть поняты под равным обратным вызовом. В зависимости от реализации равного обратного вызова, указанного при создании theSet, значение возвратилось, может не иметь того же равенства указателя как value.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Отчеты, является ли значение в наборе, и если оно существует, возвращают значение косвенно.

    Объявление

    Swift

    func CFSetGetValueIfPresent(_ theSet: CFSet!, _ candidate: UnsafePointer<Void>, _ value: UnsafeMutablePointer<UnsafePointer<Void>>) -> Boolean

    Objective C

    Boolean CFSetGetValueIfPresent ( CFSetRef theSet, const void *candidate, const void **value );

    Параметры

    theSet

    Набор для исследования.

    candidate

    Значение, которое можно искать в theSet. Сравнения сделаны с помощью равного обратного вызова, предоставленного когда theSet создавался. Если равный обратный вызов был NULL, равенство указателя (в C, ==) используется.

    value

    По возврату содержит совпадающее значение, если это существует в theSet, иначе NULL. Если значение является Базовым объектом Основы, владение соблюдает Получить Правило.

    Возвращаемое значение

    true если value существует в theSet, иначе false.

    Обсуждение

    Эта функция использует равный обратный вызов. candidate и все элементы в наборе должны быть поняты под равным обратным вызовом. В зависимости от реализации равного обратного вызова, указанного при создании theSet, значение возвратилось в value может не иметь того же равенства указателя как candidate.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Получает все значения в наборе.

    Объявление

    Swift

    func CFSetGetValues(_ theSet: CFSet!, _ values: UnsafeMutablePointer<UnsafePointer<Void>>)

    Objective C

    void CFSetGetValues ( CFSetRef theSet, const void **values );

    Параметры

    theSet

    Набор для исследования.

    values

    Массив C значений размера указателя, чтобы быть заполненным значениями от theSet. Значение должно быть допустимым массивом C надлежащего типа, и размера, по крайней мере, равняются количеству theSet). Если значения являются Базовыми объектами Основы, владение соблюдает Получить Правило.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Вызывает функцию один раз для каждого значения в наборе.

    Объявление

    Swift

    func CFSetApplyFunction(_ theSet: CFSet!, _ applier: CFSetApplierFunction, _ context: UnsafeMutablePointer<Void>)

    Objective C

    void CFSetApplyFunction ( CFSetRef theSet, CFSetApplierFunction applier, void *context );

    Параметры

    theSet

    Набор для работы на.

    applier

    Функция обратного вызова для вызова один раз для каждого значения в theSet. Если этот параметр не является указателем на функцию корректного прототипа, поведение не определено. applier функция должна быть в состоянии работать со всеми значениями в theSet.

    context

    Определенное с помощью программы значение размера указателя, передающееся как второй параметр applier функция, но иначе не использовано этой функцией.

    Обсуждение

    Если theSet является непостоянным, это небезопасно для applier функционируйте для изменения содержания набора.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает идентификатор типа для типа CFSet.

    Объявление

    Swift

    func CFSetGetTypeID() -> CFTypeID

    Objective C

    CFTypeID CFSetGetTypeID ( void );

    Возвращаемое значение

    Идентификатор типа для типа CFSet.

    Обсуждение

    CFMutableSet имеет тот же идентификатор типа как CFSet.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

Обратные вызовы

  • Прототип функции обратного вызова, которая может быть применена к каждому значению в наборе.

    Объявление

    Swift

    typealias CFSetApplierFunction = CFunctionPointer<((UnsafePointer<Void>, UnsafeMutablePointer<Void>) -> Void)>

    Objective C

    typedef void (*CFSetApplierFunction) ( const void *value, void *context );

    Параметры

    value

    Текущая стоимость в наборе.

    context

    Определенный с помощью программы параметр контекста, данный применять функции.

    Обсуждение

    Этот обратный вызов передается CFSetApplyFunction функция, выполняющая итерации по значениям в наборе и применяющая поведение, определенное в функции applier к каждому значению в наборе.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Прототип функции обратного вызова раньше получал описание значения в наборе.

    Объявление

    Swift

    typealias CFSetCopyDescriptionCallBack = CFunctionPointer<((UnsafePointer<Void>) -> Unmanaged<CFString>!)>

    Objective C

    typedef CFStringRef (*CFSetCopyDescriptionCallBack) ( const void *value );

    Параметры

    value

    Значение, которое будет описано.

    Возвращаемое значение

    Текстовое описание value. Вызывающая сторона ответственна за выпуск этого объекта.

    Обсуждение

    Этот обратный вызов передается CFSetCreate в a CFSetCallBacks структура. Этот обратный вызов используется CFCopyDescription функция.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Прототип функции обратного вызова раньше определял, равны ли два значения в наборе.

    Объявление

    Swift

    typealias CFSetEqualCallBack = CFunctionPointer<((UnsafePointer<Void>, UnsafePointer<Void>) -> Boolean)>

    Objective C

    typedef Boolean (*CFSetEqualCallBack) ( const void *value1, const void *value2 );

    Параметры

    value1

    Значение в наборе.

    value2

    Другое значение в наборе.

    Возвращаемое значение

    true если value1 и value2 равны, false иначе.

    Обсуждение

    Этот обратный вызов передается CFSetCreate в a CFSetCallBacks структура.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Прототип функции обратного вызова, вызванной для вычислений хэш-кода для значения. Когда к значениям получают доступ, добавляют или удаляют из набора, хэш-коды используются.

    Объявление

    Swift

    typealias CFSetHashCallBack = CFunctionPointer<((UnsafePointer<Void>) -> CFHashCode)>

    Objective C

    typedef CFHashCode (*CFSetHashCallBack) ( const void *value );

    Параметры

    value

    Значение раньше вычисляло хэш-код.

    Возвращаемое значение

    Целое число, которое может использоваться в качестве табличного адреса в структуре хэш-таблицы.

    Обсуждение

    Этот обратный вызов передается CFSetCreate в a CFSetCallBacks структура.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Прототип функции обратного вызова раньше выпускал значение, прежде чем он будет удален из набора.

    Объявление

    Swift

    typealias CFSetReleaseCallBack = CFunctionPointer<((CFAllocator!, UnsafePointer<Void>) -> Void)>

    Objective C

    typedef void (*CFSetReleaseCallBack) ( CFAllocatorRef allocator, const void *value );

    Параметры

    allocator

    Средство выделения набора.

    value

    Значение, удаляемое из набора.

    Обсуждение

    Этот обратный вызов передается CFSetCreate в a CFSetCallBacks структура.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Прототип функции обратного вызова раньше сохранял значение, добавляемое к набору.

    Объявление

    Swift

    typealias CFSetRetainCallBack = CFunctionPointer<((CFAllocator!, UnsafePointer<Void>) -> UnsafePointer<Void>)>

    Objective C

    typedef const void *(*CFSetRetainCallBack) ( CFAllocatorRef allocator, const void *value );

    Параметры

    allocator

    Средство выделения набора.

    value

    Значение, добавляемое к набору.

    Возвращаемое значение

    Значение для хранения в наборе, который обычно является value если различное значение должно быть сохранено в наборе, параметр передал этому обратному вызову, но может быть различным значением.

    Обсуждение

    Этот обратный вызов передается CFSetCreate в a CFSetCallBacks структура.

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

Типы данных

Прочие условия

  • Эта структура содержит обратные вызовы, используемые, чтобы сохранить, выпустить, описать, и сравнить значения объекта CFSet.

    Объявление

    Swift

    struct CFSetCallBacks { var version: CFIndex var retain: CFSetRetainCallBack var release: CFSetReleaseCallBack var copyDescription: CFSetCopyDescriptionCallBack var equal: CFSetEqualCallBack var hash: CFSetHashCallBack }

    Objective C

    struct CFSetCallBacks { CFIndex version; CFSetRetainCallBack retain; CFSetReleaseCallBack release; CFSetCopyDescriptionCallBack copyDescription; CFSetEqualCallBack equal; CFSetHashCallBack hash; }; typedef struct CFSetCallBacks CFSetCallBacks;

    Поля

    version

    Номер версии этой структуры. Если не одни из определенных номеров версий для этого непрозрачного типа, поведение не определено. Текущая версия этой структуры 0.

    retain

    Обратный вызов раньше сохранял каждое значение, поскольку они добавляются к набору. Если NULL, значения не сохраняются. Посмотрите CFSetRetainCallBack для описания параметров этой функции.

    release

    Обратный вызов раньше выпускал значения, когда они удалены из набора. Если NULL, значения не выпущены. Посмотрите CFSetReleaseCallBack для описания этого обратного вызова.

    copyDescription

    Обратный вызов раньше создавал представление описательной строки каждого значения в наборе. Если NULL, набор создаст простое описание каждого значения. Посмотрите CFSetCopyDescriptionCallBack для описания этого обратного вызова.

    equal

    Обратный вызов раньше сравнивал значения в наборе для равенства для некоторых операций. Если NULL, набор будет использовать равенство указателя для сравнения значений в наборе. Посмотрите CFSetEqualCallBack для описания этого обратного вызова.

    hash

    Обратный вызов раньше вычислял хэш-код для значений в наборе. Если NULL, набор вычисляет хэш-код путем преобразования значения указателя в целое число. Посмотрите CFSetHashCallBack для описания этого обратного вызова.

    Доступность

    Доступный в OS X v10.0 и позже.

  • Ссылка на неизменный объект набора.

    Объявление

    Swift

    typealias CFSetRef = CFSet

    Objective C

    typedef const struct __CFSet *CFSetRef;

    Оператор импорта

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

    Доступный в OS X v10.0 и позже.

Константы

Прочие условия

  • CFSet обеспечивает некоторые предопределенные обратные вызовы для Вашего удобства.

    Объявление

    Swift

    let kCFTypeSetCallBacks: CFSetCallBacks let kCFCopyStringSetCallBacks: CFSetCallBacks

    Objective C

    const CFSetCallBacks kCFTypeSetCallBacks; const CFSetCallBacks kCFCopyStringSetCallBacks;

    Константы

    • kCFTypeSetCallBacks

      kCFTypeSetCallBacks

      Предопределенный CFSetCallBacks структура, содержащая ряд обратных вызовов, подходящих для использования, когда значениями в CFSet являются все CFType-производные-объекты. Сохранить обратный вызов CFRetain, обратный вызов выпуска CFRelease, обратный вызов копии CFCopyDescription, равный обратный вызов CFEqual, и обратный вызов хеша CFHash. Поэтому при использовании этой константы при создании набора элементы автоматически сохраняются, когда добавлено к набору и выпустили, когда удалено из набора.

      Доступный в OS X v10.0 и позже.

    • kCFCopyStringSetCallBacks

      kCFCopyStringSetCallBacks

      Предопределенный CFSetCallBacks структура, содержащая ряд обратных вызовов, подходящих для использования, когда значения в наборе являются всеми объектами CFString. Сохранить обратный вызов делает неизменную копию строк добавленной к набору.

      Доступный в OS X v10.0 и позже.