OSOrderedSet
OSOrderedSet обеспечивает хранилище упорядоченного набора объектов.
OSOrderedSet является контейнером для объектов C++ Libkern (полученные из OSMetaClassBase в определенном OSObject). Хранение и доступ следуют за логикой упорядоченного набора. Данный объект хранится в наборе только один раз, но Вы можете:
Определите функцию сортировки для автоматизированного упорядочивания (только после дополнения)
Вручную вставьте новые объекты в набор (переопределяющий сортирующий)
Добавьте и удалите объекты в наборе
Тест, содержит ли набор определенный объект
Сохраните объект в определенном индексе.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
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не больше, чем токовая нагрузка, или если ошибка выделения происходит, исходная способность возвращается.Нет никакого способа сократить способность OSOrderedSet.
-
Удаляет и выпускает все объекты в упорядоченном наборе.
Объявление
C++
virtual void flushCollection();Обсуждение
Способность упорядоченного набора (и поэтому потребление непосредственной памяти) не сокращена этой функцией.
-
Deallocatesand высвобождает любые средства, используемые экземпляром OSOrderedSet.
Объявление
C++
virtual void free();Обсуждение
Эта функция не должна быть вызвана непосредственно; использовать
releaseвместо этого. -
Возвращает число объектов, которые упорядоченный набор может хранить без перераспределения.
Объявление
C++
virtual unsigned int getCapacity() const;Возвращаемое значение
Число возражает, что упорядоченный набор может сохранить без перераспределения.
Обсуждение
Объекты OSOrderedSet растут, когда полный для размещения дополнительных объектов. Посмотрите
getCapacityIncrementиensureCapacity. -
Возвращает инкремент хранения упорядоченного набора.
Объявление
C++
virtual unsigned int getCapacityIncrement() const;Возвращаемое значение
Инкремент хранения упорядоченного набора.
Обсуждение
OSOrderedSet выделяет хранение для объектов в сети магазинов полного инкремента.
-
Возвращает текущее число объектов в упорядоченном наборе.
Объявление
C++
virtual unsigned int getCount() const;Возвращаемое значение
Текущее число объектов в упорядоченном наборе.
-
Объект в индексе 0 в упорядоченном наборе, если существует один, иначе
NULL.Объявление
C++
virtual OSObject * getFirstObject() const;Обсуждение
Возвращенный объект будет выпущен, если удалено из упорядоченного набора; если Вы планируете сохранить ссылку, необходимо вызвать
retainна том объекте. -
Последний объект в упорядоченном наборе, если существует один, иначе
NULL.Объявление
C++
virtual OSObject * getLastObject() const;Обсуждение
Возвращенный объект будет выпущен, если удалено из упорядоченного набора; если Вы планируете сохранить ссылку, необходимо вызвать
retainна том объекте. -
Получает объект в определенном индексе.
Объявление
C++
virtual OSObject * getObject( unsigned intindex) const;Параметры
indexИндекс в набор.
Возвращаемое значение
Объект в данном индексе, или
NULLесли ни один не существует в том расположении.Обсуждение
Возвращенный объект будет выпущен, если удалено из набора; если Вы планируете сохранить ссылку, необходимо вызвать
retainна том объекте. -
Возвращает контекст упорядочивания, с которым создавался упорядоченный набор.
Объявление
C++
virtual void * getOrderingRef();Возвращаемое значение
Контекст упорядочивания упорядоченного набора, или
NULLесли это не имеет того. -
Инициализирует новый экземпляр OSOrderedSet.
Объявление
C++
virtual bool initWithCapacity( unsigned intcapacity, OSOrderFunction orderFunc = 0, void *orderingContext = 0);Параметры
capacityСпособность исходной системы хранения нового объекта упорядоченного набора.
orderFuncФункция C, реализующая алгоритм сортировки для набора.
orderingContextКонтекст упорядочивания, передающийся
orderFunc.Возвращаемое значение
trueна успехе,falseпри отказе.Обсуждение
Не для общего использования. Используйте статический метод создания экземпляра
withCapacityвместо этого.capacityдолжно быть ненулевым. Новый набор будет расти по мере необходимости для размещения большего количества ключевых/объектных пар (в отличие от Базовых наборов Основы, для которых начальная способность является жестким пределом).Если
orderFuncпредоставлен, это используетсяsetObject(const OSMetaClassBase *)определить, где вставить новый объект. Другие функции параметра объекта игнорируют упорядочивание.orderingContextне сохраняется или иначе управляется памятью упорядоченным набором. Если это должно быть освобождено, необходимо отследить ссылки на него и упорядоченный набор для освобождения его соответственно. ПосмотритеgetOrderingRef. -
Тестирует равенство OSOrderedSet против произвольного объекта.
Объявление
C++
virtual bool isEqualTo( const OSMetaClassBase *anObject) const;Параметры
anObjectОбъект, сравниваемый с получателем.
Возвращаемое значение
trueесли два объекта эквивалентны,falseиначе.Обсуждение
Если другой объект получен из OSOrderedSet и выдерживает сравнение равный как OSOrderedSet, объект OSOrderedSet считают равным другому объекту.
-
Тестирует равенство двух объектов OSOrderedSet.
Объявление
C++
virtual bool isEqualTo( const OSOrderedSet *anOrderedSet) const;Параметры
anOrderedSetОбъект упорядоченного набора, сравниваемый с получателем.
Возвращаемое значение
trueесли два набора эквивалентны,falseиначе.Обсуждение
Два объекта OSOrderedSet считают равными, если у них есть то же количество и те же объектные значения указателя в том же порядке.
-
Проверяет упорядоченный набор на присутствие объекта.
Объявление
C++
virtual bool member( const OSMetaClassBase *anObject) const;Параметры
anObjectOSMetaClassBase-производный-объект для проверки на в упорядоченном наборе.
Возвращаемое значение
trueеслиanObjectприсутствует в упорядоченном наборе,falseиначе.Обсуждение
Равенство указателя используется. Возвраты
falseесли переданоNULL.containsObject(const OSMetaClassBase *)проверки наNULLпрежде, чем отсканировать содержание, и поэтому более эффективно, чем эта функция. -
Вызывает функцию порядка упорядоченного набора против a
NULLобъект.Объявление
C++
virtual SInt32 orderObject( const OSMetaClassBase *anObject);Параметры
anObjectОбъект, который будет упорядочен.
Возвращаемое значение
Значение упорядочивания для объекта.
Обсуждение
Это вызовы функции порядок упорядоченного набора функционирует с
anObject,NULL, и контекст упорядочивания (илиNULLесли ни один не был установлен), и возвращает результат той функции. -
Удаляет объект из упорядоченного набора.
Объявление
C++
virtual void removeObject( const OSMetaClassBase *anObject);Параметры
anObjectOSMetaClassBase-производный-объект, который будет удален из упорядоченного набора.
Обсуждение
Объект, удаленный из упорядоченного набора, выпущен.
-
Устанавливает инкремент хранения упорядоченного набора.
Объявление
C++
virtual unsigned int setCapacityIncrement( unsignedincrement);Возвращаемое значение
Новый инкремент хранения упорядоченного набора, который может отличаться от числа, которое требуют.
Обсуждение
OSOrderedSet выделяет хранение для объектов в сети магазинов полного инкремента. Вызывание этой функции сразу не перераспределяет хранение.
-
Добавляет объект к OSOrderedSet в индексе 0, если это уже не присутствует.
Объявление
C++
virtual bool setFirstObject( const OSMetaClassBase *anObject);Параметры
anObjectOSMetaClassBase-производный-объект, который будет добавлен к упорядоченному набору.
Возвращаемое значение
trueеслиanObjectбыл успешно добавлен к упорядоченному набору,falseиначе (включая то, если это уже было в упорядоченном наборе в каком-либо индексе).Обсуждение
Набор добавляет хранение для размещения нового объекта, при необходимости. Если успешно добавлено, объект сохраняется.
Эта функция игнорирует любую функцию упорядочивания упорядоченного набора и может разрушить автоматический механизм сортировки. Только вызовите эту функцию при управлении упорядоченным набором непосредственно.
A
falseвозвращаемое значение может означать любого этоanObjectуже присутствует в наборе, или что произошел сбой выделения памяти. Если необходимо знать, присутствует ли объект уже, использоватьcontainsObject(const OSMetaClassBase *). -
Добавляет объект в конце OSOrderedSet, если это уже не присутствует.
Объявление
C++
virtual bool setLastObject( const OSMetaClassBase *anObject);Параметры
anObjectOSMetaClassBase-производный-объект, который будет добавлен к упорядоченному набору.
Возвращаемое значение
trueеслиanObjectбыл успешно добавлен к упорядоченному набору,falseиначе (включая то, если это уже было в упорядоченном наборе в каком-либо индексе).Обсуждение
Набор добавляет хранение для размещения нового объекта, при необходимости. Если успешно добавлено, объект сохраняется.
Эта функция игнорирует любую функцию упорядочивания упорядоченного набора и может разрушить автоматический механизм сортировки. Только вызовите эту функцию при управлении упорядоченным набором непосредственно.
A
falseвозвращаемое значение может означать любого этоanObjectуже присутствует в наборе, или что произошел сбой выделения памяти. Если необходимо знать, присутствует ли объект уже, использоватьcontainsObject(const OSMetaClassBase *). -
Добавляет объект к OSOrderedSet, если это уже не присутствует, храня его в сортированном порядке, если существует функция порядка.
Объявление
C++
virtual bool setObject( const OSMetaClassBase *anObject);Параметры
anObjectOSMetaClassBase-производный-объект, который будет добавлен к упорядоченному набору.
Возвращаемое значение
trueеслиanObjectбыл успешно добавлен к упорядоченному набору,falseиначе (включая то, если это уже было в упорядоченном наборе).Обсуждение
Набор добавляет хранение для размещения нового объекта, при необходимости. Если успешно добавлено, объект сохраняется.
Если
anObjectуже не находится в упорядоченном наборе и существует функция порядка, этот функциональные циклы через существующие объекты, вызывая функцию порядка с параметрами каждый existingObject,anObject, и контекст упорядочивания (илиNULLесли ни один не был установлен), пока функция порядка не возвращает значение, больше, чем или равный 0. Это тогда вставляетanObjectв индексе существующего объекта.Если нет никакой функции порядка, объект вставляется в индексе 0.
A
falseвозвращаемое значение может означать любого этоanObjectуже присутствует в наборе, или что произошел сбой выделения памяти. Если необходимо знать, присутствует ли объект уже, использоватьcontainsObject(const OSMetaClassBase *). -
setObject (интервал без знака, константа OSMetaClassBase *) - setObject (интервал без знака, константа OSMetaClassBase *)Добавляет объект к OSOrderedSet в указанном индексе, если он уже не присутствует.
Объявление
C++
virtual bool setObject( unsigned intindex, const OSMetaClassBase *anObject);Параметры
indexИндекс, в котором можно вставить новый объект.
anObjectOSMetaClassBase-производный-объект, который будет добавлен к упорядоченному набору.
Возвращаемое значение
trueесли объект был успешно добавлен к упорядоченному набору,falseиначе (включая то, если это уже было в наборе).Обсуждение
Набор добавляет хранение для размещения нового объекта, при необходимости. Если успешно добавлено, объект сохраняется.
Эта функция игнорирует любую функцию упорядочивания упорядоченного набора и может разрушить автоматический механизм сортировки. Только вызовите эту функцию при управлении упорядоченным набором непосредственно.
A
falseвозвращаемое значение может означать или что объект уже присутствует в наборе, или что произошел сбой выделения памяти. Если необходимо знать, присутствует ли объект уже, использоватьcontainsObject containsObject. -
Объявление
C++
virtual unsigned setOptions( unsignedoptions, unsignedmask, void *context = 0);Параметры
optionsБитовое поле, значения которого поворачивают опции на (1) или прочь (0).
maskМаска, указывающая, который биты в
optionsизмениться. Передайте 0 для получения целого текущего битового поля опций, не изменяя настроек.contextНеиспользованный.
Возвращаемое значение
Битовое поле опций, как это было перед операцией присвоения.
Обсуждение
Расширения ядра не должны вызывать эту функцию.
Опции дочерних наборов изменяются, только если фактически изменяются опции упорядоченного набора получения.
-
Создает и инициализирует пустой OSOrderedSet.
Объявление
C++
static OSOrderedSet * withCapacity( unsigned intcapacity, OSOrderFunction orderFunc = 0, void *orderingContext = 0);Параметры
capacityСпособность исходной системы хранения нового объекта упорядоченного набора.
orderFuncФункция C, реализующая алгоритм сортировки для набора.
orderingContextКонтекст упорядочивания, передающийся
orderFunc.Возвращаемое значение
Пустой экземпляр OSOrderedSet с сохранить количеством 1;
NULLпри отказе.Обсуждение
capacityдолжно быть ненулевым. Новый OSOrderedSet будет расти по мере необходимости для размещения большего количества ключевых/объектных пар (в отличие от Базовых наборов Основы, для которых начальная способность является жестким пределом).Если
orderFuncпредоставлен, это используетсяsetObject(const OSMetaClassBase *)определить, где вставить новый объект. Другие функции параметра объекта игнорируют упорядочивание.orderingContextне сохраняется или иначе управляется памятью упорядоченным набором. Если это должно быть освобождено, необходимо отследить ссылки на него и упорядоченный набор для освобождения его соответственно. ПосмотритеgetOrderingRef.
-
Функция сортировки, используемая OSOrderedSet для упорядочивания объектов.
Объявление
C++
typedef SInt32 ( *OSOrderFunction)( const OSMetaClassBase *obj1, const OSMetaClassBase *obj2, void *context);Параметры
obj1Объект от упорядоченного набора. Может быть
NULL.obj2Объект, упорядочиваемый в упорядоченном наборе. Может быть
NULL.contextУказатель на предоставленный пользователями контекст. Может быть
NULL.Возвращаемое значение
Результат сравнения объекта:
отрицательная величина, если obj2 должен предшествовать obj1,
положительное значение, если obj1 должен предшествовать obj2,
и 0, если obj1 и obj2 имеют эквивалентное упорядочивание.
Оператор импорта
Objective C
#include <OSOrderedSet.h>;Доступность
Доступный в OS X v10.0 через OS X v10.5.
