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

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

Разработчик

Ссылка класса OSDictionary

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

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

OSDictionary

OSDictionary обеспечивает ассоциативное хранилище с помощью строк для ключей.

OSDictionary является контейнером для объектов C++ Libkern (полученные из OSMetaClassBase в определенном OSObject). Хранение и доступ ассоциативны, на основе оцененных строке ключей (струна до, OSString или OSSymbol). При добавлении объекта к OSDictionary Вы обеспечиваете идентификатор строки, могущий тогда используемый, чтобы получить тот объект или удалить его из словаря. Установка объекта с ключом, уже имеющим связанный объект, заменяет исходный объект.

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

При итерации OSDictionary использование OSCollectionIterator объекты возвратились из getNextObject ключи словаря (не объектные значения для тех ключей). Можно использовать ключи для получения их связанных объектных значений.

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

Примечание: OSDictionary в настоящее время использует линейный алгоритм поиска и не разработан для высокоэффективного доступа многих значений. Это предназначается как простой ассоциативный механизм хранения только.

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

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

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

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

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

    Объявление

    C++

    virtual void flushCollection();

    Обсуждение

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

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

    Объявление

    C++

    virtual void free();

    Обсуждение

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

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

    Объявление

    C++

    virtual unsigned int getCapacity() const;

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

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

    Обсуждение

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

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

    Объявление

    C++

    virtual unsigned int getCapacityIncrement() const;

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

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

    Обсуждение

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

  • Возвращает текущее число ключевых/объектных пар, содержавших в словаре.

    Объявление

    C++

    virtual unsigned int getCount() const;

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

    Текущее число ключевых/объектных пар содержится в словаре.

  • Возвращает объект, хранивший под данным ключом.

    Объявление

    C++

    virtual OSObject * getObject( const char *aKey) const;

    Параметры

    aKey

    Ключ струны до идентификация объекта, который будет возвращен к вызывающей стороне.

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

    Объект, хранивший под aKey, или NULL если ключ не существует в словаре.

    Обсуждение

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

  • Возвращает объект, хранивший под данным ключом.

    Объявление

    C++

    virtual OSObject * getObject( const OSString *aKey) const;

    Параметры

    aKey

    Ключ OSString, идентифицирующий объект, который будет возвращен к вызывающей стороне.

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

    Объект, хранивший под aKey, или NULL если ключ не существует в словаре.

    Обсуждение

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

  • Возвращает объект, хранивший под данным ключом.

    Объявление

    C++

    virtual OSObject * getObject( const OSSymbol *aKey) const;

    Параметры

    aKey

    Ключ OSSymbol, идентифицирующий объект, который будет возвращен к вызывающей стороне.

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

    Объект, хранивший под aKey, или NULL если ключ не существует в словаре.

    Обсуждение

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

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

    Объявление

    C++

    virtual bool initWithCapacity( unsigned intcapacity);

    Параметры

    capacity

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

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

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

    Обсуждение

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

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

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

    Объявление

    C++

    virtual bool initWithDictionary( const OSDictionary *dict, unsigned int capacity = 0);

    Параметры

    dict

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

    capacity

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

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

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

    Обсуждение

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

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

    Ключи и объекты в dict сохраняются для хранения в новом OSDictionary, не скопированном.

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

    Объявление

    C++

    virtual bool initWithObjects( const OSObject *objects[], const OSString *keys[], unsigned int count, unsigned int capacity = 0);

    Параметры

    objects

    Массив C OSMetaClassBase-производных-объектов.

    keys

    Массив C ключей OSString для соответствующих объектов в objects.

    count

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

    capacity

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

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

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

    Обсуждение

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

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

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

    Объявление

    C++

    virtual bool initWithObjects( const OSObject *objects[], const OSSymbol *keys[], unsigned int count, unsigned int capacity = 0);

    Параметры

    objects

    Массив C OSMetaClassBase-производных-объектов.

    keys

    Массив C ключей OSSymbol для соответствующих объектов в objects.

    count

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

    capacity

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

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

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

    Обсуждение

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

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

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

    Объявление

    C++

    virtual bool isEqualTo( const OSMetaClassBase *anObject) const;

    Параметры

    anObject

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

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

    true если объекты равны.

    Обсуждение

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

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

    Объявление

    C++

    virtual bool isEqualTo( const OSDictionary *aDictionary) const;

    Параметры

    aDictionary

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

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

    true если словари равны, false если нет.

    Обсуждение

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

  • Тестирует равенство двух объектов OSDictionary по подмножеству ключей.

    Объявление

    C++

    virtual bool isEqualTo( const OSDictionary *aDictionary, const OSCollection *keys) const;

    Параметры

    aDictionary

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

    keys

    OSArray или OSDictionary, содержащий ключи (как Осстрингс или OSSymbols) описание пересечения для сравнения.

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

    true если пересечения этих двух словарей равны.

    Обсуждение

    Два объекта OSDictionary считает равными эта функция, если и иметь объекты, хранившие для всех ключей, если, и если, объекты, хранившие в каждом под данным ключом, выдерживают сравнение как равное использование isEqualTo.

  • Объединяет содержание словаря в получатель.

    Объявление

    C++

    virtual bool merge( const OSDictionary *aDictionary);

    Параметры

    aDictionary

    Словарь, содержание которого должно быть объединено с получателем.

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

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

    Обсуждение

    Если существуют ключи aDictionary то соответствие вводит словарь получения, тогда объекты в получателе заменяются теми от aDictionary, и замененные объекты выпущены.

  • Удаляет ключевую/объектную пару из словаря.

    Объявление

    C++

    virtual void removeObject( const char *aKey);

    Параметры

    aKey

    Струна до, идентифицирующая объект, который будет удален из словаря.

    Обсуждение

    Удаленная клавиша (внутренне OSSymbol) и объект автоматически отпускается.

  • Удаляет ключевую/объектную пару из словаря.

    Объявление

    C++

    virtual void removeObject( const OSString *aKey);

    Параметры

    aKey

    OSString идентификация объекта, который будет удален из словаря.

    Обсуждение

    Удаленный ключ (не обязательно aKey самостоятельно), и объект автоматически выпущены.

  • Удаляет ключевую/объектную пару из словаря.

    Объявление

    C++

    virtual void removeObject( const OSSymbol *aKey);

    Параметры

    aKey

    OSSymbol идентификация объекта, который будет удален из словаря.

    Обсуждение

    Удаленный ключ (не обязательно aKey самостоятельно), и объект автоматически выпущены.

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

    Объявление

    C++

    virtual bool serialize( OSSerialize *serializer) const;

    Параметры

    serializer

    Объект OSSerialize.

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

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

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

    Объявление

    C++

    virtual unsigned int setCapacityIncrement( unsigned increment);

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

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

    Обсуждение

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

  • Хранит объект в словаре под ключом.

    Объявление

    C++

    virtual bool setObject( const char *aKey, const OSMetaClassBase *anObject);

    Параметры

    aKey

    Струна до, идентифицирующая объект, поместила в словаре.

    anObject

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

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

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

    Обсуждение

    OSSymbol для aKey создается внутренне. Объект, уже хранивший под aKey выпущен.

  • Хранит объект в словаре под ключом.

    Объявление

    C++

    virtual bool setObject( const OSString *aKey, const OSMetaClassBase *anObject);

    Параметры

    aKey

    OSString идентификация объекта поместил в словаре.

    anObject

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

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

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

    Обсуждение

    OSSymbol для aKey создается внутренне. Объект, уже хранивший под aKey выпущен.

  • Хранит объект в словаре под ключом.

    Объявление

    C++

    virtual bool setObject( const OSSymbol *aKey, const OSMetaClassBase *anObject);

    Параметры

    aKey

    OSSymbol идентификация объекта поместил в словаре. Это автоматически сохраняется.

    anObject

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

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

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

    Обсуждение

    Объект, уже хранивший под aKey выпущен.

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

    Объявление

    C++

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

    Параметры

    options

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

    mask

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

    context

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

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

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

    Обсуждение

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

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

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

    Объявление

    C++

    static OSDictionary * withCapacity( unsigned intcapacity);

    Параметры

    capacity

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

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

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

    Обсуждение

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

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

    Объявление

    C++

    static OSDictionary * withDictionary( const OSDictionary *dict, unsigned int capacity = 0);

    Параметры

    dict

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

    capacity

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

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

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

    Обсуждение

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

    Ключи и объекты в dict сохраняются для хранения в новом OSDictionary, не скопированном.

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

    Объявление

    C++

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

    Параметры

    objects

    Массив C OSMetaClassBase-производных-объектов.

    keys

    Массив C ключей OSString для соответствующих объектов в objects.

    count

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

    capacity

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

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

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

    Обсуждение

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

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

    Объявление

    C++

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

    Параметры

    objects

    Массив C OSMetaClassBase-производных-объектов.

    keys

    Массив C ключей OSSymbol для соответствующих объектов в objects.

    count

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

    capacity

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

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

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

    Обсуждение

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