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;Параметры
anObjectOSMetaClassBase-производный-объект для проверки на в наборе.
Возвращаемое значение
trueеслиanObjectприсутствует в наборе,falseиначе.Обсуждение
Равенство указателя используется. Эта функция возвраты
falseесли переданоNULL. -
Создает глубокую копию этого набора и его дочерних наборов.
Объявление
C++
OSCollection *copyCollection( OSDictionary *cycleDict = 0);Параметры
cycleDictСловарь всех наборов, скопированных до сих пор, который используется для отслеживания циклических ссылок. Запустить копию на верхнем уровне, передаче
NULL.Возвращаемое значение
Недавно скопированный набор, с сохранить количеством 1, или
NULLесли существует недостаточно память, чтобы сделать копию.Обсуждение
Набор получения и любые наборы, которые это содержит, рекурсивно, копируются. Объекты, не полученные из OSCollection, сохраняются, а не копируются.
-
Гарантирует, что набор имеет достаточно пространства для хранения требуемого числа отдельных объектов.
Объявление
C++
virtual unsigned int ensureCapacity( unsigned intnewCapacity);Параметры
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);Параметры
arrayOSAray, содержание которого будет помещено в новый экземпляр.
capacityСпособность исходной системы хранения нового объекта набора. Если 0, способность установлена в число объектов в
array; иначеcapacityдолжно быть больше, чем или равным числу объектов вarray.Возвращаемое значение
trueна успехе,falseпри отказе.Обсуждение
Не для общего использования. Используйте статический метод создания экземпляра
withArrayвместо этого.arrayдолжен быть не -NULL. Еслиcapacityявляется ненулевым, это должно быть больше, чем или равнымcount. Новый массив будет расти по мере необходимости для размещения большего количества пар ключевого объекта (в отличие от CFMutableSet, для которого начальная способность является жестким пределом).Объекты в
arrayсохраняются для хранения в новом наборе, не скопированном. -
Инициализирует новый экземпляр OSSet.
Объявление
C++
virtual bool initWithCapacity( unsigned intcapacity);Параметры
capacityСпособность исходной системы хранения нового объекта набора.
Возвращаемое значение
trueна успехе,falseпри отказе.Обсуждение
Не для общего использования. Используйте статический метод создания экземпляра
withCapacityвместо этого.capacityдолжно быть ненулевым. Новый набор будет расти по мере необходимости для размещения большего количества ключевых/объектных пар (в отличие от CFMutableSet, для которого начальная способность является жестким пределом). -
Инициализирует новый OSSet, заполненный с предоставленными объектами.
Объявление
C++
virtual bool initWithObjects( const OSObject *objects[], unsigned intcount, 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;Параметры
anObjectOSMetaClassBase-производный-объект для проверки на в наборе.
Возвращаемое значение
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);Параметры
anObjectOSMetaClassBase-производный-объект, который будет удален из набора.
Обсуждение
Объект, удаленный из набора, выпущен.
-
Архивирует получатель в предоставленный объект OSSerialize.
Объявление
C++
virtual bool serialize( OSSerialize *serializer) const;Параметры
serializerОбъект OSSerialize.
Возвращаемое значение
trueесли сериализация успешно выполняется,falseесли нет. -
Устанавливает инкремент хранения набора.
Объявление
C++
virtual unsigned int setCapacityIncrement( unsignedincrement);Возвращаемое значение
Новый инкремент хранения набора, который может отличаться от числа, которое требуют.
Обсуждение
OSSet выделяет хранение для объектов в сети магазинов полного инкремента. Вызывание этой функции сразу не перераспределяет хранение.
-
Добавляет объект к OSSet, если это уже не присутствует.
Объявление
C++
virtual bool setObject( const OSMetaClassBase *anObject);Параметры
anObjectOSMetaClassBase-производный-объект, который будет добавлен к набору.
Возвращаемое значение
trueеслиanObjectбыл успешно добавлен к набору,falseиначе (включая то, если это уже было в наборе).Обсуждение
Набор добавляет хранение для размещения нового объекта, при необходимости. Если успешно добавлено, объект сохраняется.
A
falseвозвращаемое значение может означать любого этоanObjectуже присутствует в наборе, или что произошел сбой выделения памяти. Если необходимо знать, присутствует ли объект уже, использоватьcontainsObject. -
Рекурсивно биты опции наборов в наборе и всех дочерних наборах.
Объявление
C++
virtual unsigned setOptions( unsignedoptions, 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 intcapacity);Параметры
capacityСпособность исходной системы хранения нового объекта набора.
Возвращаемое значение
Пустой экземпляр OSSet с сохранить количеством 1;
NULLпри отказе.Обсуждение
capacityдолжно быть ненулевым. Новый OSSet будет расти по мере необходимости для размещения большего количества ключевых/объектных пар (в отличие от CFMutableSet, для которого начальная способность является жестким пределом). -
Создает и инициализирует OSSet, заполненный с предоставленными объектами.
Объявление
C++
static OSSet * withObjects( const OSObject *objects[], unsigned intcount, 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);Параметры
setOSSet, содержание которого будет сохранено в новом экземпляре.
capacityСпособность исходной системы хранения объекта набора. Если 0, способность установлена в число объектов в
set; иначеcapacityдолжно быть больше, чем или равным числу объектов вarray.Возвращаемое значение
Экземпляр OSArray, содержащего объекты
set, с сохранить количеством 1;NULLпри отказе.Обсуждение
setдолжен быть не -NULL. Еслиcapacityявляется ненулевым, это должно быть больше, чем или равнымcount. Массив будет расти по мере необходимости для размещения большего количества пар ключевого объекта (в отличие от CFMutableSet, для которого начальная способность является жестким пределом).Объекты в
setсохраняются для хранения в новом наборе, не скопированном.
