Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка класса OSArray

Опции
Развертывание Target:

На этой странице
Язык:

OSArray

OSArray обеспечивает индексируемое хранилище объектов.

OSArray является контейнером для объектов C++ Libkern (полученные из OSMetaClassBase в определенном OSObject). Хранение и доступ индексом массива.

Необходимо обычно бросать найденные объекты от OSObject до желаемого использования класса OSDynamicCast. Этот макрос возвращает объектный бросок желаемому классу, или NULL если объект не получен из того класса.

Как со всеми классами набора Libkern, OSArray сохраняет объекты, добавленные к нему, и выпускает объекты, удаленные из него (или замененный). OSArray также растет по мере необходимости для размещения новых объектов, в отличие от Базовых наборов Основы (он, однако, не уменьшается).

Используйте ограничения

За очень немногими исключениями в Наборе I/O все находящиеся в Libkern классы C++, функции и макросы небезопасны использовать в основном контексте прерывания. Консультируйтесь с документацией Набора I/O, связанной с основными прерываниями для получения дополнительной информации.

OSArray не обеспечивает защиты параллелизма; это до контекста использования для обеспечивания любой необходимой защиты. Некоторые части Набора I/O, такие как IORegistryEntry, обрабатывают синхронизацию через определенные функции членства для установки свойств.

Наследование


Не применимый

Соответствует


Не применимый

Оператор импорта


Не применимый

Objective C

@import Kernel;

Доступность


Доступный в OS X v10.0 и позже.
  • Создает глубокую копию массива и его дочерних наборов.

    Объявление

    C++

    OSCollection * copyCollection( OSDictionary *cycleDict = 0);

    Параметры

    cycleDict

    Словарь всех наборов, скопированных до сих пор, который используется для отслеживания циклических ссылок. Запустить копию на верхнем уровне, передаче NULL.

    Возвращаемое значение

    Недавно скопированный массив, с сохранить количеством 1, или NULL если существует недостаточно память, чтобы сделать копию.

    Обсуждение

    Приемная антенная решетка и любые наборы, которые это содержит, рекурсивно, копируются. Объекты, не полученные из OSCollection, сохраняются, а не копируются.

  • Гарантирует, что массив имеет достаточно пространства для хранения требуемого числа объектов.

    Объявление

    C++

    virtual unsigned int ensureCapacity( unsigned intnewCapacity);

    Параметры

    newCapacity

    Общее количество объектов массив должно быть в состоянии сохранить.

    Возвращаемое значение

    Новая способность массива, который может отличаться от числа, которое требуют (если меньший, перераспределение отказавшего хранения).

    Обсуждение

    Эта функция сразу изменяет размеры массива, при необходимости, для размещения, по крайней мере, newCapacity объекты. Если newCapacity не больше, чем токовая нагрузка, или если ошибка выделения происходит, исходная способность возвращается.

    Нет никакого способа сократить способность OSArray.

  • Удаляет и выпускает все объекты в массиве.

    Объявление

    C++

    virtual void flushCollection();

    Обсуждение

    Способность массива (и поэтому потребление непосредственной памяти) не сокращена этой функцией.

  • Освобождает или высвобождает любые средства, используемые экземпляром OSArray.

    Объявление

    C++

    virtual void free();

    Обсуждение

    Эта функция не должна быть вызвана непосредственно; использовать release вместо этого.

  • Возвращает число объектов, которые массив может хранить без перераспределения.

    Объявление

    C++

    virtual unsigned int getCapacity() const;

    Возвращаемое значение

    Число возражает, что массив может сохранить без перераспределения.

    Обсуждение

    Объекты OSArray растут, когда полный для размещения дополнительных объектов. Посмотрите getCapacityIncrement и ensureCapacity.

  • Возвращает инкремент хранения массива.

    Объявление

    C++

    virtual unsigned int getCapacityIncrement() const;

    Возвращаемое значение

    Инкремент хранения массива.

    Обсуждение

    OSArray выделяет хранение для объектов в сети магазинов полного инкремента.

  • Возвращает текущее число объектов в массиве.

    Объявление

    C++

    virtual unsigned int getCount() const;

    Возвращаемое значение

    Текущее число объектов в массиве.

  • Возвращает последний объект в массиве.

    Объявление

    C++

    virtual OSObject * getLastObject() const;

    Возвращаемое значение

    Последний объект в массиве, или NULL если массив пуст.

    Обсуждение

    Возвращенный объект будет выпущен, если удалено из массива; если Вы планируете сохранить ссылку, необходимо вызвать retain на том объекте.

  • Сканирует массив для следующего экземпляра конкретного объекта в или вне данного индекса.

    Объявление

    C++

    virtual unsigned int getNextIndexOfObject( const OSMetaClassBase *anObject, unsigned intindex) const;

    Параметры

    anObject

    Объект отсканировать для.

    index

    Индекс, в котором можно начать сканирование.

    Возвращаемое значение

    Следующий индекс anObject в массиве или (-1), если ни один не найден.

    Обсуждение

    Эта функция использует эквивалентность указателя и не использует isEqualTo.

  • Возвратите объект, хранивший в данном индексе.

    Объявление

    C++

    virtual OSObject * getObject( unsigned intindex) const;

    Параметры

    index

    Индекс объекта, который будет возвращен к вызывающей стороне.

    Возвращаемое значение

    Объект, хранивший в index, или NULL если index находится мимо конца массива.

    Обсуждение

    Возвращенный объект будет выпущен, если удалено из массива; если Вы планируете сохранить ссылку, необходимо вызвать retain на том объекте.

  • Инициализирует новый OSArray, заполненный с содержанием другого массива.

    Объявление

    C++

    virtual bool initWithArray( const OSArray *anArray, unsigned int capacity = 0);

    Параметры

    anArray

    Массив, содержание которого будет помещено в новый экземпляр.

    capacity

    Способность исходной системы хранения объекта массива. Если 0, способность установлена в число объектов в array; иначе capacity должно быть больше, чем или равным числу объектов в array.

    Возвращаемое значение

    true на успехе, false при отказе.

    Обсуждение

    Не для общего использования. Используйте статический метод создания экземпляра withArray вместо этого.

    array должен быть не -NULL. Если capacity является ненулевым, это должно быть больше, чем или равным count. Новый массив будет расти по мере необходимости для размещения большего количества объектов (в отличие от CFMutableArray, для которого начальная способность является жестким пределом).

    Объекты в array сохраняются для хранения в новом OSArray, не скопированном.

  • Инициализирует новый экземпляр OSArray.

    Объявление

    C++

    virtual bool initWithCapacity( unsigned intcapacity);

    Параметры

    capacity

    Способность исходной системы хранения объекта массива.

    Возвращаемое значение

    true на успехе, false при отказе.

    Обсуждение

    Не для общего использования. Используйте статический метод создания экземпляра withCapacity вместо этого.

    capacity должно быть ненулевым. Новый массив будет расти по мере необходимости для размещения большего количества объектов (в отличие от CFMutableArray, для которого начальная способность является жестким пределом).

  • Инициализирует новый OSArray, заполненный с предоставленными объектами.

    Объявление

    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. Новый массив будет расти по мере необходимости для размещения большего количества объектов (в отличие от CFMutableArray, для которого начальная способность является жестким пределом).

  • Тестирует равенство двух объектов OSArray.

    Объявление

    C++

    virtual bool isEqualTo( const OSArray *anArray) const;

    Параметры

    anArray

    Объект массива, сравниваемый с получателем.

    Возвращаемое значение

    true если два массива эквивалентны, false иначе.

    Обсуждение

    Два объекта OSArray считают равными, если у них есть то же количество и если объекты в соответствующих индексах выдерживают сравнение как равное использование isEqualTo.

  • Тестирует равенство OSArray к произвольному объекту.

    Объявление

    C++

    virtual bool isEqualTo( const OSMetaClassBase *anObject) const;

    Параметры

    anObject

    Объект, который будет сравнен с получателем.

    Возвращаемое значение

    true если два объекта эквивалентны, false иначе.

    Обсуждение

    Если тот объект получен из OSArray и содержит те же или эквивалентные объекты, OSArray считают равным другому объекту.

  • Добавляет содержание массива на приемную антенную решетку.

    Объявление

    C++

    virtual bool merge( const OSArray *otherArray);

    Параметры

    otherArray

    Массив, содержание которого будет добавлено к приемной антенной решетке.

    Возвращаемое значение

    true если слияние было успешно, false иначе.

    Обсуждение

    Эта функция просто добавляет один массив на другого. Копий не избегают, и никакая сортировка не выполняется. Сохраняются объекты, успешно добавленные к получателю.

  • Удаляет объект из массива.

    Объявление

    C++

    virtual void removeObject( unsigned intindex);

    Параметры

    index

    Индекс объекта, который будет удален.

    Обсуждение

    Эта функция перемещает существующие объекты заполнить освобожденный индекс так, чтобы не было никаких разрывов. Удаленный объект выпущен.

  • Заменяет объект в массиве в данном индексе.

    Объявление

    C++

    virtual void replaceObject( unsigned intindex, const OSMetaClassBase *anObject);

    Параметры

    index

    Индекс объекта, который будет заменен. Должны быть меньше, чем количество массива.

    anObject

    Объект, который будет помещен в массив.

    Обсуждение

    Исходный объект выпущен, и новый объект сохраняется.

  • Архивирует получатель в предоставленный объект OSSerialize.

    Объявление

    C++

    virtual bool serialize( OSSerialize *serializer) const;

    Параметры

    serializer

    Объект OSSerialize.

    Возвращаемое значение

    true если сериализация успешно выполняется, false если нет.

  • Устанавливает инкремент хранения массива.

    Объявление

    C++

    virtual unsigned int setCapacityIncrement( unsigned increment);

    Возвращаемое значение

    Новый инкремент хранения массива, который может отличаться от числа, которое требуют.

    Обсуждение

    OSArray выделяет хранение для объектов в сети магазинов полного инкремента. Вызывание этой функции сразу не перераспределяет хранение.

  • Добавляет объект на конец массива, увеличивая хранение при необходимости.

    Объявление

    C++

    virtual bool setObject( const OSMetaClassBase *anObject);

    Параметры

    anObject

    Объект добавить к экземпляру OSArray.

    Возвращаемое значение

    true если добавление anObject было успешно, false если нет.

    Обсуждение

    Массив добавляет хранение для размещения нового объекта, при необходимости. Если успешно добавлено, объект сохраняется.

  • Вставляет или добавляет объект в массив в определенном индексе.

    Объявление

    C++

    virtual bool setObject( unsigned intindex, const OSMetaClassBase *anObject);

    Параметры

    index

    Индекс в массиве, в котором можно вставить объект. Должно быть меньше чем или равно количеству массива.

    anObject

    Объект добавить к массиву.

    Возвращаемое значение

    true если добавление anObject было успешно, false если нет.

    Обсуждение

    Эта функция перемещает существующие объекты от index на, для размещения нового объекта; это не заменяет существующий объект в index. Посмотрите replaceObject. Если успешно добавлено, объект сохраняется.

    Массив добавляет хранение для размещения нового объекта, при необходимости. Отметьте, однако, что эта функция не допускает arbirtrary рост массива путем указания индекса, больше, чем текущее количество. Если необходимо сразу увеличить массив произвольной суммой, использовать ensureCapacity.

  • Рекурсивно биты опции наборов в массиве и всех дочерних наборах.

    Объявление

    C++

    virtual unsigned setOptions( unsigned options, unsigned mask, void *context = 0);

    Параметры

    options

    Битовое поле, значения которого поворачивают опции на (1) или прочь (0).

    mask

    Маска, указывающая, который биты в options измениться. Передайте 0 для получения целого текущего битового поля опций, не изменяя настроек.

    context

    Неиспользованный.

    Возвращаемое значение

    Битовое поле опций, как это было перед операцией присвоения.

    Обсуждение

    Расширения ядра не должны вызывать эту функцию.

    Опции дочерних наборов изменяются, только если фактически изменяются опции приемной антенной решетки.

  • Создает и инициализирует OSArray, заполненный с содержанием другого массива.

    Объявление

    C++

    static OSArray * withArray( const OSArray *array, unsigned int capacity = 0);

    Параметры

    array

    OSArray, содержание которого будет сохранено в новом экземпляре.

    capacity

    Способность исходной системы хранения объекта массива. Если 0, способность установлена в число объектов в array; иначе capacity должно быть больше, чем или равным числу объектов в array.

    Возвращаемое значение

    Экземпляр OSArray, содержащего объекты array, с сохранить количеством 1; NULL при отказе.

    Обсуждение

    array должен быть не -NULL. Если capacity является ненулевым, это должно быть больше, чем или равным count. Новый массив будет расти по мере необходимости для размещения большего количества объектов (в отличие от CFMutableArray, для которого начальная способность является жестким пределом).

    Объекты в array сохраняются для хранения в новом OSArray, не скопированном.

  • Создает и инициализирует пустой OSArray.

    Объявление

    C++

    static OSArray * withCapacity( unsigned intcapacity);

    Параметры

    capacity

    Способность исходной системы хранения объекта массива.

    Возвращаемое значение

    Пустой экземпляр OSArray с сохранить количеством 1; NULL при отказе.

    Обсуждение

    capacity должно быть ненулевым. Новый массив будет расти по мере необходимости для размещения большего количества объектов (в отличие от CFMutableArray, для которого начальная способность является жестким пределом).

  • Создает и инициализирует OSArray, заполненный с предоставленными объектами.

    Объявление

    C++

    static OSArray * withObjects( const OSObject *objects[], unsigned int count, unsigned int capacity = 0);

    Параметры

    objects

    Массив C OSObject-полученных экземпляров.

    count

    Число объектов, которые будут помещены в массив.

    capacity

    Способность исходной системы хранения объекта массива. Если 0, count используется; иначе это значение должно быть больше, чем или равным count.

    Возвращаемое значение

    Экземпляр OSArray, содержащего объекты, если, с сохранить количеством 1; NULL при отказе.

    Обсуждение

    objects должен быть не -NULL, и count должно быть ненулевым. Если capacity является ненулевым, это должно быть больше, чем или равным count. Новый массив будет расти по мере необходимости для размещения большего количества объектов (в отличие от CFMutableArray, для которого начальная способность является жестким пределом).