Ссылка CFMutableBag
CFMutableBag управляет динамическими сумками. Основной интерфейс для управления сумками предоставлен CFBag. CFMutableBag добавляет функции для изменения содержания сумки.
Вы создаете непостоянный объект сумки, использующий любого CFBagCreateMutable или CFBagCreateMutableCopy функция.
CFMutableBag обеспечивает несколько функций для добавления и удаления значений от сумки. CFBagAddValue функция добавляет значение к сумке и CFBagRemoveValue удаляет значения из сумки.
-
Создает новую пустую непостоянную сумку.
Объявление
Swift
func CFBagCreateMutable(_allocator: CFAllocator!, _capacity: CFIndex, _callBacks: UnsafePointer<CFBagCallBacks>) -> CFMutableBag!Objective C
CFMutableBagRef CFBagCreateMutable ( CFAllocatorRef allocator, CFIndex capacity, const CFBagCallBacks *callBacks );Параметры
allocatorОбъект-распределитель для использования для выделения памяти для новой сумки и ее хранения для значений. Передача
NULLилиkCFAllocatorDefaultиспользовать текущее средство выделения по умолчанию.capacityМаксимальное количество значений, которые могут содержаться новой сумкой. Сумка запускается пустой и может расти до этого числа значений (и это может иметь меньше). Если этот параметр
0, максимальная способность сумки не ограничивается. Это значение не должно быть отрицательным.callBacksУказатель на a
CFBagCallBacksструктура, инициализированная с обратными вызовами для использования для сохранения, выпустите, опишите и сравните значения в сумке. Копия содержания структуры обратных вызовов сделана, так, чтобы указатель на структуру на штабеле мог быть передан в или мог быть снова использован для многократных созданий набора. Этот параметр может бытьNULL, который обрабатывается как будто допустимая структура версии0со всеми полямиNULLбыл передан в.Если какое-либо из полей не является допустимыми указателями на функции корректного типа, или этот параметр не является допустимым указателем на a
CFBagCallBacksструктура, поведение не определено. Если какое-либо значение, помещенное в набор, не является тем, понятым под одной из функций обратного вызова, поведение, когда та функция обратного вызова используется, не определено.Если набор содержит только объекты CFType, то передайте
kCFTypeBagCallBacksкак этот параметр для использования функций обратного вызова по умолчанию.Возвращаемое значение
Новая непостоянная сумка, или
NULLесли была проблема, создающая объект. Владение соблюдает Создать Правило.Обсуждение
Эта функция создает новую пустую непостоянную сумку, для которой Вы можете добавленные стоимости с помощью
CFBagAddValueфункция.capacityпараметр указывает максимальное количество значений, которые может содержать объект CFBag. Если это0, тогда нет никакого предела числу значений, которые могут быть добавлены (кроме ограничений, таких как доступная память).Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
Создает новую непостоянную сумку со значениями от другой сумки.
Объявление
Swift
func CFBagCreateMutableCopy(_allocator: CFAllocator!, _capacity: CFIndex, _theBag: CFBag!) -> CFMutableBag!Objective C
CFMutableBagRef CFBagCreateMutableCopy ( CFAllocatorRef allocator, CFIndex capacity, CFBagRef theBag );Параметры
allocatorСредство выделения для использования для выделения памяти для новой сумки и ее хранения для значений. Передача
NULLилиkCFAllocatorDefaultиспользовать текущее средство выделения по умолчанию.capacityМаксимальное количество значений, которые могут содержаться новой сумкой. Сумка запускается с того же количества как
theBag, и может расти до этого числа значений (и оно может иметь меньше). Если это значение0, максимальная способность сумки не ограничивается. Это значение должно быть больше, чем или равным количествуtheBag, и не должно быть отрицательным.theBagСумка для копирования. Указатель оценивает от
theBagкопируются в новую сумку. Однако значения также сохраняются новой сумкой. Количество новой сумки совпадает с количествомtheBag. Новая сумка использует те же обратные вызовы какtheBag.Возвращаемое значение
Новая непостоянная сумка, содержащая те же значения как
theBag. Владение соблюдает Создать Правило.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
Добавляет значение к непостоянной сумке.
Объявление
Swift
func CFBagAddValue(_theBag: CFMutableBag!, _value: UnsafePointer<Void>)Objective C
void CFBagAddValue ( CFMutableBagRef theBag, const void *value );Параметры
theBagСумка та, к который
valueдобавляется.valueCFType возражает или значение указателя для добавления к
theBag(или само значение, если это вписывается в размер указателя).Обсуждение
valueпараметр сохраняетсяtheBagиспользование сохранить обратный вызов обеспечило когдаtheBagсоздавался. Еслиvalueне имеет типа, ожидаемого сохранить обратным вызовом, поведение не определено. Еслиvalueуже существует в наборе, он просто сохраняется снова — никакая память не выделяется для добавленной стоимости. Используйте объект CFSet, если Вы не хотите двойные значения в своем наборе.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
Удаляет все значения из непостоянной сумки.
Объявление
Swift
func CFBagRemoveAllValues(_theBag: CFMutableBag!)Objective C
void CFBagRemoveAllValues ( CFMutableBagRef theBag );Параметры
theBagСумка, из которой должны быть удалены все значения.
Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
Удаляет значение из непостоянной сумки.
Объявление
Swift
func CFBagRemoveValue(_theBag: CFMutableBag!, _value: UnsafePointer<Void>)Objective C
void CFBagRemoveValue ( CFMutableBagRef theBag, const void *value );Параметры
theBagСумка та, от который
valueдолжен быть удален.valueЗначение, которое будет удалено из набора.
Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
Заменяет значение в непостоянной сумке.
Объявление
Swift
func CFBagReplaceValue(_theBag: CFMutableBag!, _value: UnsafePointer<Void>)Objective C
void CFBagReplaceValue ( CFMutableBagRef theBag, const void *value );Параметры
theBagСумка та, от который
valueдолжен быть заменен.valueЗначение, которое будет заменено в наборе. Если это значение уже не существует в наборе, функция ничего не делает. Можно передать само значение вместо указателя, если это - размер указателя или меньше. Равный обратный вызов обеспечил когда
theBagсоздавался используется для сравнения. Если равный обратный вызов былNULL, равенство указателя (в C, ==) используется. Еслиvalue, или любое другое значение вtheBag, не понят под равным обратным вызовом, поведение не определено.Обсуждение
В зависимости от реализации равного обратного вызова, указанного при создании
theBag, объект, заменяющийсяvalueможет не иметь того же равенства указателя.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
Устанавливает значение в непостоянной сумке.
Объявление
Swift
func CFBagSetValue(_theBag: CFMutableBag!, _value: UnsafePointer<Void>)Objective C
void CFBagSetValue ( CFMutableBagRef theBag, const void *value );Параметры
theBagСумка та, в который
valueдолжен быть установлен.valueЗначение, которое будет установлено в наборе. Если это значение уже существует в
theBag, это заменяется. Если значение является размером указателя или меньше, можно передать само значение вместо указателя на него. ЕслиtheBagфиксированный размер, и значение вне его способности, поведение не определено.Обсуждение
В зависимости от реализации равного обратного вызова, указанного при создании
theBag, значение, заменяющеесяvalueможет не иметь того же равенства указателя.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
Ссылка на непостоянный объект сумки.
Объявление
Swift
typealias CFMutableBagRef = CFMutableBagObjective C
typedef struct __CFBag *CFMutableBagRef;Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
