Ссылка 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
был передан в. Иначе, если какое-либо из полей не является допустимыми указателями на функции корректного типа, или это значение не является допустимым указателем на aCFArrayCallBacks
структура, поведение не определено. Если какое-либо значение, помещенное в набор, не является тем, понятым под одной из функций обратного вызова, поведение, когда та функция обратного вызова используется, не определено.Если набор содержит только объекты 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>) -> CFIndexObjective 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>) -> BooleanObjective 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!) -> CFIndexObjective 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>) -> CFIndexObjective 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>) -> CFIndexObjective 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>) -> CFIndexObjective 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
в aCFArrayCallBacks
структура. Этот обратный вызов используется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
в aCFArrayCallBacks
структура.Оператор импорта
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
в aCFArrayCallBacks
структура.Оператор импорта
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
в aCFArrayCallBacks
структура.Оператор импорта
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 и позже.
-