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

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

Разработчик

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

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

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

Ссылка CFBag

CFBag и его полученный непостоянный тип, CFMutableBag, управляют, непоследовательные наборы значений вызвали сумки, в которых могут быть двойные значения. CFBag создает статические сумки, и CFMutableBag создает динамические сумки.

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

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

CFBag обеспечивает функции для запросов значений сумки. CFBagGetCount возвращает число значений в сумке, CFBagContainsValue функционируйте проверки, если значение находится в сумке, и CFBagGetValues возвращает массив C, содержащий все значения в сумке.

CFBagApplyFunction функция позволяет Вам применить функцию ко всем значениям в сумке.

Функции

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

    Объявление

    Swift

    func CFBagCreate(_ allocator: CFAllocator!, _ values: UnsafeMutablePointer<UnsafePointer<Void>>, _ numValues: CFIndex, _ callBacks: UnsafePointer<CFBagCallBacks>) -> CFBag!

    Objective C

    CFBagRef CFBagCreate ( CFAllocatorRef allocator, const void **values, CFIndex numValues, const CFBagCallBacks *callBacks );

    Параметры

    allocator

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

    values

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

    numValues

    Число значений для копирования с values C выстраивают в новом объекте CFBag. Если число отрицательно или больше, чем фактическое число значений, поведение не определено.

    callBacks

    Указатель на структуру CFBagCallBacks, инициализированную с обратными вызовами для использования для сохранения, выпустите, опишите и сравните значения в сумке. Копия содержания структуры обратных вызовов сделана, так, чтобы указатель на структуру на штабеле мог быть передан в или мог быть снова использован для многократных созданий набора. Этот параметр может быть NULL, который обрабатывается как будто допустимая структура версии 0 со всеми полями NULL был передан в. Иначе, если какое-либо из полей не является допустимыми указателями на функции корректного типа, или этот параметр не является допустимым указателем на структуру CFBagCallBacks, поведение не определено. Если какое-либо значение, помещенное в набор, не является тем, понятым под одной из функций обратного вызова, поведение, когда та функция обратного вызова используется, не определено. Если набор содержит объекты CFType только, то передайте kCFTypeBagCallBacks как этот параметр для использования функций обратного вызова по умолчанию.

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

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Создает неизменную сумку со значениями другой сумки.

    Объявление

    Swift

    func CFBagCreateCopy(_ allocator: CFAllocator!, _ theBag: CFBag!) -> CFBag!

    Objective C

    CFBagRef CFBagCreateCopy ( CFAllocatorRef allocator, CFBagRef theBag );

    Параметры

    allocator

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

    theBag

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

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

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Отчеты, является ли значение в сумке.

    Объявление

    Swift

    func CFBagContainsValue(_ theBag: CFBag!, _ value: UnsafePointer<Void>) -> Boolean

    Objective C

    Boolean CFBagContainsValue ( CFBagRef theBag, const void *value );

    Параметры

    theBag

    Сумка для исследования.

    value

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

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

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFBagGetCount(_ theBag: CFBag!) -> CFIndex

    Objective C

    CFIndex CFBagGetCount ( CFBagRef theBag );

    Параметры

    theBag

    Сумка для исследования.

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

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFBagGetCountOfValue(_ theBag: CFBag!, _ value: UnsafePointer<Void>) -> CFIndex

    Objective C

    CFIndex CFBagGetCountOfValue ( CFBagRef theBag, const void *value );

    Параметры

    theBag

    Сумка для исследования.

    value

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

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

    Число раз value происходит в theBag.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Возвращает требуемое значение из сумки.

    Объявление

    Swift

    func CFBagGetValue(_ theBag: CFBag!, _ value: UnsafePointer<Void>) -> UnsafePointer<Void>

    Objective C

    const void * CFBagGetValue ( CFBagRef theBag, const void *value );

    Параметры

    theBag

    Сумка для исследования.

    value

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

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

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

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFBagGetValueIfPresent(_ theBag: CFBag!, _ candidate: UnsafePointer<Void>, _ value: UnsafeMutablePointer<UnsafePointer<Void>>) -> Boolean

    Objective C

    Boolean CFBagGetValueIfPresent ( CFBagRef theBag, const void *candidate, const void **value );

    Параметры

    theBag

    Сумка, которая будет искаться.

    candidate

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

    value

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

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

    true если value присутствует в theBag, иначе false.

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Заполняет буфер значениями от сумки.

    Объявление

    Swift

    func CFBagGetValues(_ theBag: CFBag!, _ values: UnsafeMutablePointer<UnsafePointer<Void>>)

    Objective C

    void CFBagGetValues ( CFBagRef theBag, const void **values );

    Параметры

    theBag

    Сумка для исследования.

    values

    Массив C значений размера указателя, чтобы быть заполненным значениями от theBag. Значение должно быть допустимым массивом C надлежащего типа и размера (т.е. размер, равный количеству theBag).

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFBagApplyFunction(_ theBag: CFBag!, _ applier: CFBagApplierFunction, _ context: UnsafeMutablePointer<Void>)

    Objective C

    void CFBagApplyFunction ( CFBagRef theBag, CFBagApplierFunction applier, void *context );

    Параметры

    theBag

    Сумка для работы на.

    applier

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

    context

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

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFBagGetTypeID() -> CFTypeID

    Objective C

    CFTypeID CFBagGetTypeID ( void );

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

    Идентификатор типа для непрозрачного типа CFBag.

    Специальные замечания

    Объекты CFMutableBag имеют тот же идентификатор типа как объекты CFBag.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

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

    Объявление

    Swift

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

    Objective C

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

    Параметры

    value

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

    context

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

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

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

    Objective C

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

    Параметры

    value

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

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

    Текстовое описание value. Владение соблюдает Создать Правило.

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

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

    Objective C

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

    Параметры

    value1

    Значение в сумке.

    value2

    Другое значение в сумке.

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

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

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

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

    Objective C

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

    Параметры

    value

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

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

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

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

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

    Objective C

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

    Параметры

    allocator

    Средство выделения сумки.

    value

    Значение, удаляемое из сумки.

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

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

    Objective C

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

    Параметры

    allocator

    Средство выделения сумки.

    value

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

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

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

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

Типы данных

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

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

    Объявление

    Swift

    struct CFBagCallBacks { var version: CFIndex var retain: CFBagRetainCallBack var release: CFBagReleaseCallBack var copyDescription: CFBagCopyDescriptionCallBack var equal: CFBagEqualCallBack var hash: CFBagHashCallBack }

    Objective C

    struct CFBagCallBacks { CFIndex version; CFBagRetainCallBack retain; CFBagReleaseCallBack release; CFBagCopyDescriptionCallBack copyDescription; CFBagEqualCallBack equal; CFBagHashCallBack hash; }; typedef struct CFBagCallBacks CFBagCallBacks;

    Поля

    version

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

    retain

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

    release

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

    copyDescription

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

    equal

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

    hash

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

    Доступность

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

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

    Объявление

    Swift

    typealias CFBagRef = CFBag

    Objective C

    typedef const struct __CFBag *CFBagRef;

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

Константы

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

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

    Объявление

    Swift

    let kCFTypeBagCallBacks: CFBagCallBacks let kCFCopyStringBagCallBacks: CFBagCallBacks

    Objective C

    const CFBagCallBacks kCFTypeBagCallBacks; const CFBagCallBacks kCFCopyStringBagCallBacks;

    Константы

    • kCFTypeBagCallBacks

      kCFTypeBagCallBacks

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

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

    • kCFCopyStringBagCallBacks

      kCFCopyStringBagCallBacks

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

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