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

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

Разработчик

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

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

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

Ссылка CFArray

CFArray и его полученный непостоянный тип, Ссылка CFMutableArray, управляют, упорядоченные наборы значений вызвали массивы. CFArray создает статические массивы, и CFMutableArray создает динамические массивы.

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

Две примитивных функции CFARRAY CFArrayGetCount и CFArrayGetValueAtIndex обеспечьте основание для всех других функций в его интерфейсе. CFArrayGetCount функционируйте возвращает число элементов в массиве; CFArrayGetValueAtIndex предоставляет Вам доступ к элементам массива индексом, с индексными значениями, запускающимися в 0.

Много функций CFArray позволяют Вам действовать по диапазону значений в массиве, например CFArrayApplyFunction позволяет Вам применить функцию к значениям в массиве, и CFArrayBSearchValues ищет массив значение, соответствующее его параметр. Вспомните, что диапазон определяется как {start, length}, поэтому для работы по целому массиву диапазон, который Вы предоставляете, должен быть {0, N} (где N количество массива).

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

Функции

  • Создает новый неизменный массив с данными значениями.

    Объявление

    Swift

    func CFArrayCreate(_ allocator: CFAllocator!, _ values: UnsafeMutablePointer<UnsafePointer<Void>>, _ numValues: CFIndex, _ callBacks: UnsafePointer<CFArrayCallBacks>) -> CFArray!

    Objective C

    CFArrayRef CFArrayCreate ( CFAllocatorRef allocator, const void **values, CFIndex numValues, const CFArrayCallBacks *callBacks );

    Параметры

    allocator

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

    values

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

    numValues

    Число значений для копирования со значений C выстраивает в новый массив. Это число будет количеством нового массива — это не должно быть отрицательным или больше, чем число элементов в values.

    callBacks

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

    Это значение может быть NULL, который обрабатывается как будто допустимая структура версии 0 со всеми полями NULL был передан в. Иначе, если какое-либо из полей не является допустимыми указателями на функции корректного типа, или это значение не является допустимым указателем на a CFArrayCallBacks структура, поведение не определено. Если какое-либо значение, помещенное в набор, не является тем, понятым под одной из функций обратного вызова, поведение, когда та функция обратного вызова используется, не определено.

    Если набор содержит только объекты CFType, то передайте указатель на kCFTypeArrayCallBacks (&kCFTypeArrayCallBacks) использовать функции обратного вызова по умолчанию.

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

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFArrayCreateCopy(_ allocator: CFAllocator!, _ theArray: CFArray!) -> CFArray!

    Objective C

    CFArrayRef CFArrayCreateCopy ( CFAllocatorRef allocator, CFArrayRef theArray );

    Параметры

    allocator

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

    theArray

    Массив для копирования.

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

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

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Ищет массив значение с помощью алгоритма двоичного поиска.

    Объявление

    Swift

    func CFArrayBSearchValues(_ theArray: CFArray!, _ range: CFRange, _ value: UnsafePointer<Void>, _ comparator: CFComparatorFunction, _ context: UnsafeMutablePointer<Void>) -> CFIndex

    Objective C

    CFIndex CFArrayBSearchValues ( CFArrayRef theArray, CFRange range, const void *value, CFComparatorFunction comparator, void *context );

    Параметры

    theArray

    Массив, сортированный от наименьшего количества до самого большого согласно comparator функция.

    range

    Диапазон в theArray искать. Диапазон не должен превышать границы theArray. Диапазон может быть пустым (длина 0).

    value

    Значение, для которого можно найти соответствие в theArray. Если value, или любое другое значение в theArray, не понят под comparator обратный вызов, поведение не определено.

    comparator

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

    context

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

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

    Возвращаемое значение является одним из следующего:

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

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

    • Индекс значения, больше, чем целевое значение, если значение находится между двумя из (или меньше, чем весь из) значения в диапазоне.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFArrayContainsValue(_ theArray: CFArray!, _ range: CFRange, _ value: UnsafePointer<Void>) -> Boolean

    Objective C

    Boolean CFArrayContainsValue ( CFArrayRef theArray, CFRange range, const void *value );

    Параметры

    theArray

    Массив для поиска.

    range

    Диапазон в theArray искать. Диапазон не должен превышать границы theArray). Диапазон может быть пустым (длина 0).

    value

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

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

    true, если value находится в указанном диапазоне theArray, иначе false.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFArrayGetCount(_ theArray: CFArray!) -> CFIndex

    Objective C

    CFIndex CFArrayGetCount ( CFArrayRef theArray );

    Параметры

    theArray

    Массив для исследования.

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

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Считает число раз, данное значение происходит в массиве.

    Объявление

    Swift

    func CFArrayGetCountOfValue(_ theArray: CFArray!, _ range: CFRange, _ value: UnsafePointer<Void>) -> CFIndex

    Objective C

    CFIndex CFArrayGetCountOfValue ( CFArrayRef theArray, CFRange range, const void *value );

    Параметры

    theArray

    Массив для исследования.

    range

    Диапазон в theArray искать. Диапазон должен лечь в границах theArray). Диапазон может быть пустым (длина 0).

    value

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

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

    Число раз value происходит в theArray, в указанном диапазоне.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Ищет массив вперед значение.

    Объявление

    Swift

    func CFArrayGetFirstIndexOfValue(_ theArray: CFArray!, _ range: CFRange, _ value: UnsafePointer<Void>) -> CFIndex

    Objective C

    CFIndex CFArrayGetFirstIndexOfValue ( CFArrayRef theArray, CFRange range, const void *value );

    Параметры

    theArray

    Массив для исследования.

    range

    Диапазон в theArray искать. Диапазон должен лечь в границах theArray. Диапазон может быть пустым (длина 0). Поиск развивается от самого низкого индекса, определенного диапазоном к самому высокому.

    value

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

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

    Самый низкий индекс совпадающих значений в диапазоне, или -1 если не соответствовало никакое значение в диапазоне.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Ищет массив назад значение.

    Объявление

    Swift

    func CFArrayGetLastIndexOfValue(_ theArray: CFArray!, _ range: CFRange, _ value: UnsafePointer<Void>) -> CFIndex

    Objective C

    CFIndex CFArrayGetLastIndexOfValue ( CFArrayRef theArray, CFRange range, const void *value );

    Параметры

    theArray

    Массив для исследования.

    range

    Диапазон в theArray искать. Диапазон не должен превышать границы theArray. Диапазон может быть пустым (длина 0). Поиск развивается от самого высокого индекса, определенного диапазоном к самому низкому.

    value

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

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

    Самый высокий индекс совпадающих значений в диапазоне, или -1 если не соответствовало никакое значение в диапазоне.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFArrayGetValues(_ theArray: CFArray!, _ range: CFRange, _ values: UnsafeMutablePointer<UnsafePointer<Void>>)

    Objective C

    void CFArrayGetValues ( CFArrayRef theArray, CFRange range, const void **values );

    Параметры

    theArray

    Массив для исследования.

    range

    Диапазон значений в theArray получать. Диапазон должен лечь в границах theArray. Диапазон может быть пустым (длина 0), когда никакие значения не помещаются в буфер values.

    values

    Массив C значений размера указателя, чтобы быть заполненным значениями от theArray. Значения в массиве C находятся в том же порядке, как они появляются в theArray. Если это значение не является допустимым указателем на массив C, по крайней мере, range.length указатели, поведение не определено. Если значения являются Базовыми объектами Основы, владение соблюдает Получить Правило.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Получает значение в данном индексе.

    Объявление

    Swift

    func CFArrayGetValueAtIndex(_ theArray: CFArray!, _ idx: CFIndex) -> UnsafePointer<Void>

    Objective C

    const void * CFArrayGetValueAtIndex ( CFArrayRef theArray, CFIndex idx );

    Параметры

    theArray

    Массив для исследования.

    idx

    Индекс значения для получения. Если индекс вне индексного пространства theArray (0 к N-1 включительно (где N количество theArray), поведение не определено.

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

    Значение в idx индекс в theArray. Если возвращаемое значение является Базовым Объектом Основы, владение соблюдает Получить Правило.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFArrayApplyFunction(_ theArray: CFArray!, _ range: CFRange, _ applier: CFArrayApplierFunction, _ context: UnsafeMutablePointer<Void>)

    Objective C

    void CFArrayApplyFunction ( CFArrayRef theArray, CFRange range, CFArrayApplierFunction applier, void *context );

    Параметры

    theArray

    Массив тот, к чей элементам для применения функции.

    range

    Диапазон значений в theArray к которому можно применяться applier функция. Диапазон не должен превышать границы theArray. Диапазон может быть пустым (длина 0).

    applier

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

    context

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

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFArrayGetTypeID() -> CFTypeID

    Objective C

    CFTypeID CFArrayGetTypeID ( void );

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

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

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

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

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

    Объявление

    Swift

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

    Objective C

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

    Параметры

    value

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

    context

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

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

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

    Objective C

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

    Параметры

    value

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

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

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

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

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

    Objective C

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

    Параметры

    value1

    Значение в массиве, чтобы быть по сравнению с value2 для равенства.

    value2

    Значение в массиве, чтобы быть по сравнению с value1 для равенства.

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

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

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

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

    Objective C

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

    Параметры

    allocator

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

    value

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

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

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

    Objective C

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

    Параметры

    allocator

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

    value

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

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

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

    Обсуждение

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

Типы данных

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

  • Структура, содержащая обратные вызовы CFArray.

    Объявление

    Swift

    struct CFArrayCallBacks { var version: CFIndex var retain: CFArrayRetainCallBack var release: CFArrayReleaseCallBack var copyDescription: CFArrayCopyDescriptionCallBack var equal: CFArrayEqualCallBack }

    Objective C

    struct CFArrayCallBacks { CFIndex version; CFArrayRetainCallBack retain; CFArrayReleaseCallBack release; CFArrayCopyDescriptionCallBack copyDescription; CFArrayEqualCallBack equal; }; typedef struct CFArrayCallBacks CFArrayCallBacks;

    Поля

    version

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

    retain

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

    release

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

    copyDescription

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

    equal

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

    Доступность

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

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

    Объявление

    Swift

    typealias CFArrayRef = CFArray

    Objective C

    typedef const struct __CFArray *CFArrayRef;

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

Константы

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

  • Когда значениями в CFArray являются все CFType-производные-объекты, CFArray обеспечивает предопределенную структуру обратного вызова, подходящую для использования.

    Объявление

    Swift

    let kCFTypeArrayCallBacks: CFArrayCallBacks

    Objective C

    const CFArrayCallBacks kCFTypeArrayCallBacks;

    Константы

    • kCFTypeArrayCallBacks

      kCFTypeArrayCallBacks

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

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