OSSet
OSSet обеспечивает неупорядоченное приданное значение объектов.
OSSet является контейнером для объектов C++ Libkern (полученные из OSMetaClassBase в определенном OSObject). Хранение и доступ следуют за базовой логикой набора: можно добавить или удалить объект и протестировать, содержит ли набор определенный объект. Данный объект только хранится в наборе один раз, и нет никакого упорядочивания объектов в наборе. Подкласс OSOrderedSet, предусматривает логику упорядоченного набора.
Как со всеми классами набора Libkern, OSSet сохраняет объекты, добавленные к нему, и выпускает объекты, удаленные из него. OSSet также растет по мере необходимости для размещения новых объектов, в отличие от Базовых наборов Основы (он, однако, не уменьшается).
Используйте ограничения
За очень немногими исключениями в Наборе I/O все находящиеся в Libkern классы C++, функции и макросы небезопасны использовать в основном контексте прерывания. Консультируйтесь с документацией Набора I/O, связанной с основными прерываниями для получения дополнительной информации.
OSSet не обеспечивает защиты параллелизма; это до контекста использования для обеспечивания любой необходимой защиты. Некоторые части Набора I/O, такие как IORegistryEntry, обрабатывают синхронизацию через определенные функции членства для установки свойств.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.0 и позже.
-
Проверяет набор на присутствие объекта.
Объявление
C++
virtual bool containsObject( const OSMetaClassBase *
anObject
) const;Параметры
anObject
OSMetaClassBase-производный-объект для проверки на в наборе.
Возвращаемое значение
true
еслиanObject
присутствует в наборе,false
иначе.Обсуждение
Равенство указателя используется. Эта функция возвраты
false
если переданоNULL
. -
Создает глубокую копию этого набора и его дочерних наборов.
Объявление
C++
OSCollection *copyCollection( OSDictionary *cycleDict = 0);
Параметры
cycleDict
Словарь всех наборов, скопированных до сих пор, который используется для отслеживания циклических ссылок. Запустить копию на верхнем уровне, передаче
NULL
.Возвращаемое значение
Недавно скопированный набор, с сохранить количеством 1, или
NULL
если существует недостаточно память, чтобы сделать копию.Обсуждение
Набор получения и любые наборы, которые это содержит, рекурсивно, копируются. Объекты, не полученные из OSCollection, сохраняются, а не копируются.
-
Гарантирует, что набор имеет достаточно пространства для хранения требуемого числа отдельных объектов.
Объявление
C++
virtual unsigned int ensureCapacity( unsigned int
newCapacity
);Параметры
newCapacity
Общее количество отдельных объектов набор должно быть в состоянии сохранить.
Возвращаемое значение
Новая способность набора, который может отличаться от числа, которое требуют (если меньший, перераспределение отказавшего хранения).
Обсуждение
Эта функция сразу изменяет размеры набора, при необходимости, для размещения, по крайней мере,
newCapacity
отдельные объекты. ЕслиnewCapacity
не больше, чем токовая нагрузка, или если ошибка выделения происходит, исходная способность возвращается.Нет никакого способа сократить способность OSSet.
-
Удаляет и выпускает все объекты в наборе.
Объявление
C++
virtual void flushCollection();
Обсуждение
Способность набора (и поэтому потребление непосредственной памяти) не сокращена этой функцией.
-
Освобождает или высвобождает любые средства, используемые экземпляром OSSet.
Объявление
C++
virtual void free();
Обсуждение
Эта функция не должна быть вызвана непосредственно; использовать
release
вместо этого. -
Возвращает произвольное (не случайный) объект от набора.
Объявление
C++
virtual OSObject * getAnyObject() const;
Возвращаемое значение
Произвольное (не случайный) возражает, существуете ли Вы в наборе.
Обсуждение
Возвращенный объект будет выпущен, если удалено из набора; если Вы планируете сохранить ссылку, необходимо вызвать
retain
на том объекте. -
Возвращает число объектов, которые набор может хранить без перераспределения.
Объявление
C++
virtual unsigned int getCapacity() const;
Возвращаемое значение
Число возражает, что набор может сохранить без перераспределения.
Обсуждение
Объекты OSSet растут, когда полный для размещения дополнительных объектов. Посмотрите
getCapacityIncrement
иensureCapacity
. -
Возвращает инкремент хранения набора.
Объявление
C++
virtual unsigned int getCapacityIncrement() const;
Возвращаемое значение
Инкремент хранения набора.
Обсуждение
OSSet выделяет хранение для объектов в сети магазинов полного инкремента.
-
Возвращает текущее число объектов в наборе.
Объявление
C++
virtual unsigned int getCount() const;
Возвращаемое значение
Текущее число объектов в наборе.
-
Инициализирует новый OSSet, заполненный с содержанием OSArray.
Объявление
C++
virtual bool initWithArray( const OSArray *
array
, unsigned int capacity = 0);Параметры
array
OSAray, содержание которого будет помещено в новый экземпляр.
capacity
Способность исходной системы хранения нового объекта набора. Если 0, способность установлена в число объектов в
array
; иначеcapacity
должно быть больше, чем или равным числу объектов вarray
.Возвращаемое значение
true
на успехе,false
при отказе.Обсуждение
Не для общего использования. Используйте статический метод создания экземпляра
withArray
вместо этого.array
должен быть не -NULL
. Еслиcapacity
является ненулевым, это должно быть больше, чем или равнымcount
. Новый массив будет расти по мере необходимости для размещения большего количества пар ключевого объекта (в отличие от CFMutableSet, для которого начальная способность является жестким пределом).Объекты в
array
сохраняются для хранения в новом наборе, не скопированном. -
Инициализирует новый экземпляр OSSet.
Объявление
C++
virtual bool initWithCapacity( unsigned int
capacity
);Параметры
capacity
Способность исходной системы хранения нового объекта набора.
Возвращаемое значение
true
на успехе,false
при отказе.Обсуждение
Не для общего использования. Используйте статический метод создания экземпляра
withCapacity
вместо этого.capacity
должно быть ненулевым. Новый набор будет расти по мере необходимости для размещения большего количества ключевых/объектных пар (в отличие от CFMutableSet, для которого начальная способность является жестким пределом). -
Инициализирует новый OSSet, заполненный с предоставленными объектами.
Объявление
C++
virtual bool initWithObjects( const OSObject *objects[], unsigned int
count
, unsigned int capacity = 0);Параметры
objects
Массив C OSObject-производных-объектов.
count
Число объектов, которые будут помещены в набор.
capacity
Способность исходной системы хранения нового объекта набора. Если 0,
count
используется; иначе это значение должно быть больше, чем или равнымcount
.Возвращаемое значение
true
на успехе,false
при отказе.Обсуждение
Не для общего использования. Используйте статический метод создания экземпляра
withObjects
вместо этого.objects
должен быть не -NULL
, иcount
должно быть ненулевым. Еслиcapacity
является ненулевым, это должно быть больше, чем или равнымcount
. Новый массив будет расти по мере необходимости для размещения большего количества пар ключевого объекта (в отличие от CFMutableSet, для которого начальная способность является жестким пределом).Объекты в
objects
сохраняются для хранения в новом наборе, не скопированном. -
Инициализирует новый OSSet, заполненный с содержанием другого OSSet.
Объявление
C++
virtual bool initWithSet( const OSSet *
set
, unsigned int capacity = 0);Параметры
set
Набор, содержание которого будет помещено в новый экземпляр.
capacity
Способность исходной системы хранения нового объекта набора. Если 0, способность установлена в число объектов в
set
; иначеcapacity
должно быть больше, чем или равным числу объектов вset
.Возвращаемое значение
true
на успехе,false
при отказе.Обсуждение
Не для общего использования. Используйте статический метод создания экземпляра
withSet
вместо этого.set
должен быть не -NULL
. Еслиcapacity
является ненулевым, это должно быть больше, чем или равнымcount
. Новый набор будет расти по мере необходимости для размещения большего количества пар ключевого объекта (в отличие от CFMutableSet, для которого начальная способность является жестким пределом).Объекты в
set
сохраняются для хранения в новом наборе, не скопированном. -
Тестирует равенство OSSet против произвольного объекта.
Объявление
C++
virtual bool isEqualTo( const OSMetaClassBase *
anObject
) const;Параметры
anObject
Объект, сравниваемый с получателем.
Возвращаемое значение
true
если два объекта эквивалентны,false
иначе.Обсуждение
Если другой объект получен из OSSet и выдерживает сравнение равный как набор, объект OSSet считают равным другому объекту.
-
Тестирует равенство двух объектов OSSet.
Объявление
C++
virtual bool isEqualTo( const OSSet *
aSet
) const;Параметры
aSet
Объект набора, сравниваемый с получателем.
Возвращаемое значение
true
если два набора эквивалентны,false
иначе.Обсуждение
Два объекта OSSet считают равными, если у них есть то же количество и те же объектные значения указателя.
-
Проверяет набор на присутствие объекта.
Объявление
C++
virtual bool member( const OSMetaClassBase *
anObject
) const;Параметры
anObject
OSMetaClassBase-производный-объект для проверки на в наборе.
Возвращаемое значение
true
еслиanObject
присутствует в наборе,false
иначе.Обсуждение
Равенство указателя используется. Эта функция возвраты
false
если переданоNULL
.containsObject
проверки наNULL
во-первых, и поэтому более эффективно, чем эта функция. -
Добавляет содержание OSArray к набору.
Объявление
C++
virtual bool merge( const OSArray *
array
);Параметры
array
Объект OSArray, содержащий объекты, которые будут добавлены.
Возвращаемое значение
true
если все объекты отarray
успешно добавляется получатель (или уже присутствовали),false
иначе.Обсуждение
Это функционирует, добавляет к получению, устанавливает все объекты от
array
это уже не находится в наборе получения. Сохраняются объекты, добавленные к получателю.В выпусках до 10,7, возвратилась бы эта функция
false
если объект отarray
уже присутствовал в наборе, или еслиarray
было пусто. Это больше не имеет место, таким образом, правильно возвращается эта функцияtrue
когда встречено семантическое из слияния. -
Добавляет содержание OSet к набору.
Объявление
C++
virtual bool merge( const OSSet *
set
);Параметры
set
Объект OSSet, содержащий объекты, которые будут добавлены.
Возвращаемое значение
true
если любой объект отset
успешно добавляется получатель (или уже присутствовали),false
иначе.Обсуждение
Это функционирует, добавляет к получению, устанавливает все объекты от
set
это уже не находится в наборе получения. Сохраняются объекты, добавленные к получателю.В выпусках до 10,7, возвратилась бы эта функция
false
если объект отset
уже присутствовал в наборе, или еслиset
было пусто. Это больше не имеет место, таким образом, правильно возвращается эта функцияtrue
когда встречено семантическое из слияния. -
Удаляет объект из набора.
Объявление
C++
virtual void removeObject( const OSMetaClassBase *
anObject
);Параметры
anObject
OSMetaClassBase-производный-объект, который будет удален из набора.
Обсуждение
Объект, удаленный из набора, выпущен.
-
Архивирует получатель в предоставленный объект OSSerialize.
Объявление
C++
virtual bool serialize( OSSerialize *
serializer
) const;Параметры
serializer
Объект OSSerialize.
Возвращаемое значение
true
если сериализация успешно выполняется,false
если нет. -
Устанавливает инкремент хранения набора.
Объявление
C++
virtual unsigned int setCapacityIncrement( unsigned
increment
);Возвращаемое значение
Новый инкремент хранения набора, который может отличаться от числа, которое требуют.
Обсуждение
OSSet выделяет хранение для объектов в сети магазинов полного инкремента. Вызывание этой функции сразу не перераспределяет хранение.
-
Добавляет объект к OSSet, если это уже не присутствует.
Объявление
C++
virtual bool setObject( const OSMetaClassBase *
anObject
);Параметры
anObject
OSMetaClassBase-производный-объект, который будет добавлен к набору.
Возвращаемое значение
true
еслиanObject
был успешно добавлен к набору,false
иначе (включая то, если это уже было в наборе).Обсуждение
Набор добавляет хранение для размещения нового объекта, при необходимости. Если успешно добавлено, объект сохраняется.
A
false
возвращаемое значение может означать любого этоanObject
уже присутствует в наборе, или что произошел сбой выделения памяти. Если необходимо знать, присутствует ли объект уже, использоватьcontainsObject
. -
Рекурсивно биты опции наборов в наборе и всех дочерних наборах.
Объявление
C++
virtual unsigned setOptions( unsigned
options
, unsignedmask
, void *context = 0);Параметры
options
Битовое поле, значения которого поворачивают опции на (1) или прочь (0).
mask
Маска, указывающая, который биты в
options
измениться. Передайте 0 для получения целого текущего битового поля опций, не изменяя настроек.context
Неиспользованный.
Возвращаемое значение
Битовое поле опций, как это было перед операцией присвоения.
Обсуждение
Расширения ядра не должны вызывать эту функцию.
Опции дочерних наборов изменяются, только если фактически изменяются опции набора получения.
-
Создает и инициализирует OSSet, заполненный с содержанием OSArray.
Объявление
C++
static OSSet * withArray( const OSArray *
array
, unsigned int capacity = 0);Параметры
array
Массив, объекты которого будут храниться в новом OSSet.
capacity
Способность исходной системы хранения нового объекта набора. Если 0, способность установлена в число объектов в
array
; иначеcapacity
должно быть больше, чем или равным числу объектов вarray
.Возвращаемое значение
Экземпляр OSSet, содержащего объекты
array
, с сохранить количеством 1;NULL
при отказе.Обсуждение
Каждый отдельный объект в
array
добавляется к новому набору.array
должен быть не -NULL
. Еслиcapacity
является ненулевым, это должно быть больше, чем или равнымcount
. Новый OSSet будет расти по мере необходимости для размещения большего количества пар ключевого объекта (в отличие от CFMutableSet, для которого начальная способность является жестким пределом).Объекты в
array
сохраняются для хранения в новом наборе, не скопированном. -
Создает и инициализирует пустой OSSet.
Объявление
C++
static OSSet * withCapacity( unsigned int
capacity
);Параметры
capacity
Способность исходной системы хранения нового объекта набора.
Возвращаемое значение
Пустой экземпляр OSSet с сохранить количеством 1;
NULL
при отказе.Обсуждение
capacity
должно быть ненулевым. Новый OSSet будет расти по мере необходимости для размещения большего количества ключевых/объектных пар (в отличие от CFMutableSet, для которого начальная способность является жестким пределом). -
Создает и инициализирует OSSet, заполненный с предоставленными объектами.
Объявление
C++
static OSSet * withObjects( const OSObject *objects[], unsigned int
count
, unsigned int capacity = 0);Параметры
objects
Массив C OSMetaClassBase-производных-объектов.
count
Число объектов, которые будут помещены в набор.
capacity
Способность исходной системы хранения нового объекта набора. Если 0,
count
используется; иначе это значение должно быть больше, чем или равнымcount
.Возвращаемое значение
Экземпляр OSSet, содержащего объекты, если, с сохранить количеством 1;
NULL
при отказе.Обсуждение
objects
должен быть не -NULL
, иcount
должно быть ненулевым. Еслиcapacity
является ненулевым, это должно быть больше, чем или равнымcount
. Новый OSSet будет расти по мере необходимости для размещения большего количества объектов (в отличие от CFMutableSet, для которого начальная способность является жестким пределом).Объекты в
objects
сохраняются для хранения в новом наборе, не скопированном. -
Создает и инициализирует OSSet, заполненный с содержанием другого OSSet.
Объявление
C++
static OSSet * withSet( const OSSet *
set
, unsigned int capacity = 0);Параметры
set
OSSet, содержание которого будет сохранено в новом экземпляре.
capacity
Способность исходной системы хранения объекта набора. Если 0, способность установлена в число объектов в
set
; иначеcapacity
должно быть больше, чем или равным числу объектов вarray
.Возвращаемое значение
Экземпляр OSArray, содержащего объекты
set
, с сохранить количеством 1;NULL
при отказе.Обсуждение
set
должен быть не -NULL
. Еслиcapacity
является ненулевым, это должно быть больше, чем или равнымcount
. Массив будет расти по мере необходимости для размещения большего количества пар ключевого объекта (в отличие от CFMutableSet, для которого начальная способность является жестким пределом).Объекты в
set
сохраняются для хранения в новом наборе, не скопированном.