OSString
OSString обертывает струну до в объект C++ для использования в наборах Libkern.
OSString является контейнерным классом для управления массивами символов. OSString обычно поддерживает свой собственный символьный буфер и позволяет изменения, но можно создать «неизменный» OSString, ссылающийся на внешний буфер струны до использование функций создателя «NoCopy». Функции, вызванные для изменения содержания неизменного OSString, перестанут работать.
Кодировки
OSString не делает условий для различных кодировок символов и предполагает, что строка является nul-завершенной последовательностью однобайтовых символов. Код пространства пользователя должен или принять кодирование (обычно ASCII или UTF-8) или определить его некоторым другим способом (таким как свойство IORegistryEntry).
Изменение строк
Использование indended OSSTRING как считаемый на ссылку контейнер объекта для струны до и немного больше. В то время как OSString обеспечивает полный доступ к базовой струне до, это обеспечивает мало в способе строкового манипулирования объектом; существуют, не добавляют или вставляют функции, только символьную набором функцию. Если необходимо управлять Осстрингсом, обычно лучше получить струны до, изменить их по мере необходимости и создать новый объект OSString из получающейся струны до.
Используйте ограничения
За очень немногими исключениями в Наборе I/O все находящиеся в Libkern классы C++, функции и макросы небезопасны использовать в основном контексте прерывания. Консультируйтесь с документацией Набора I/O, связанной с основными прерываниями для получения дополнительной информации.
OSString не обеспечивает защиты параллелизма; это до контекста использования для обеспечивания любой необходимой защиты. Некоторые части Набора I/O, такие как IORegistryEntry, обрабатывают синхронизацию через определенные функции членства для установки свойств.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.0 и позже.
-
Освобождает или высвобождает любые средства, используемые экземпляром OSString.
Объявление
C++
virtual void free();Обсуждение
Эта функция не должна быть вызвана непосредственно; использовать
releaseвместо этого. -
Возвращает символ в данном индексе в строковом объекте.
Объявление
C++
virtual char getChar( unsigned intindex) const;Параметры
indexИндекс в строку.
Возвращаемое значение
Символ в
indexв строке, или'\0'если индекс проходит конец строки. -
Возвращает указатель на внутренний буфер струны до.
Объявление
C++
virtual const char * getCStringNoCopy() const;Возвращаемое значение
Указатель на внутренний буфер струны до.
-
Возвращает число символов в объекте OSString.
Объявление
C++
virtual unsigned int getLength() const;Возвращаемое значение
Число символов в объекте OSString.
-
Инициализирует OSString от струны до.
Объявление
C++
virtual bool initWithCString( const char *cString);Параметры
cStringСтруна до для копирования в новый OSString.
Возвращаемое значение
trueна успехе,falseпри отказе.Обсуждение
Не для общего использования. Используйте статический метод создания экземпляра
withCStringвместо этого. -
Инициализирует неизменный OSString для совместного использования предоставленного буфера струны до.
Объявление
C++
virtual bool initWithCStringNoCopy( const char *cString);Параметры
cStringСтруна до к ссылке.
Возвращаемое значение
trueна успехе,falseпри отказе.Обсуждение
Не для общего использования. Используйте статический метод создания экземпляра
withCStringNoCopyвместо этого.Объект OSString, инициализированный с этой функцией, не требует владения струны до, но совместно использует его с вызывающей стороной. Когда вызывающая сторона решает, что объект OSString был фактически освобожден, это может безопасно избавиться от буфера данных. С другой стороны, если это освобождает совместно используемый буфер данных, это не должно пытаться использовать объект OSString и должно выпустить его.
Объект OSString, создаваемый с этой функцией, не позволяет изменять строку через
setChar. -
Инициализирует OSString от другого OSString.
Объявление
C++
virtual bool initWithString( const OSString *aString);Параметры
aStringOSString возражают чье содержание для копирования.
Возвращаемое значение
trueна успехе,falseпри отказе.Обсуждение
Не для общего использования. Используйте статический метод создания экземпляра
withStringвместо этого. -
Тестирует равенство объекта OSString со струной до.
Объявление
C++
virtual bool isEqualTo( const char *cString) const;Параметры
cStringСтруна до для сравнения с получателем.
Возвращаемое значение
trueесли символы OSSTRING эквивалентны струне до,falseиначе. -
Тестирует равенство объекта OSData и экземпляра OSString.
Объявление
C++
virtual bool isEqualTo( const OSData *aDataObject) const;Параметры
aDataObjectОбъект OSData.
Возвращаемое значение
trueесли два объекта эквивалентны,falseиначе.Обсуждение
Эта функция сравнивает байты объекта OSData против тех из OSString, составляя возможность, что OSData мог бы явно включать nul символ как часть его общей длины. Таким образом, например, OSData возражают содержащий любого байты <'u'', 'b', '\0'> или <'u'', 'b'> выдержит сравнение как равный OSString, содержащему «usb».
-
Тестирует равенство объекта OSString к произвольному объекту.
Объявление
C++
virtual bool isEqualTo( const OSMetaClassBase *anObject) const;Параметры
anObjectОбъект, который будет сравнен с получателем.
Возвращаемое значение
Возвраты
trueесли два объекта эквивалентны,falseиначе.Обсуждение
Если тот объект получен из OSString и содержит эквивалентные байты той же длины, OSString считают равным другому объекту.
-
Тестирует равенство двух объектов OSString.
Объявление
C++
virtual bool isEqualTo( const OSString *aString) const;Параметры
aStringОбъект OSString, сравниваемый с получателем.
Возвращаемое значение
trueесли два объекта OSString эквивалентны,falseиначе.Обсуждение
Два объекта OSString считают равными, если у них есть та же длина и если их буферы байта содержат то же содержание.
-
Архивирует получатель в предоставленный объект OSSerialize.
Объявление
C++
virtual bool serialize( OSSerialize *serializer) const;Параметры
serializerОбъект OSSerialize.
Возвращаемое значение
trueесли сериализация успешно выполняется,falseесли нет. -
Заменяет символ в данном индексе в строковом объекте.
Объявление
C++
virtual bool setChar( charaChar, unsigned intindex);Параметры
aCharСимвольное значение для установки.
indexИндекс в строку.
Возвращаемое значение
trueесли символ был заменен,falseесли создаваемого «NoCopy» илиindexпроходит конец строки. -
Создает и инициализирует OSString от струны до.
Объявление
C++
static OSString * withCString( const char *cString);Параметры
cStringСтруна до для копирования в новый OSString.
Возвращаемое значение
Экземпляр OSString представление тех же символов как
aString, и с подсчетом ссылок 1;NULLпри отказе. -
Создает и инициализирует неизменный OSString, совместно использующий предоставленный буфер струны до.
Объявление
C++
static OSString * withCStringNoCopy( const char *cString);Параметры
cStringСтруна до к ссылке.
Возвращаемое значение
Экземпляр OSString, содержащего
cString, и с подсчетом ссылок 1;NULLпри отказе.Обсуждение
Объект OSString, создаваемый с этой функцией, не требует владения струны до, но совместно использует его с вызывающей стороной. Когда вызывающая сторона решает, что объект OSString был фактически освобожден, это может безопасно избавиться от буфера данных. С другой стороны, если это освобождает совместно используемый буфер данных, это не должно пытаться использовать объект OSString и должно выпустить его.
Объект OSString, создаваемый с этой функцией, не позволяет изменять строку через
setChar. -
Создает и инициализирует OSString от другого OSString.
Объявление
C++
static OSString * withString( const OSString *aString);Параметры
aStringOSString возражают чье содержание для копирования.
Возвращаемое значение
Экземпляр OSString представление тех же символов как
aString, и с подсчетом ссылок 1;NULLпри отказе.Обсуждение
Новый OSString является отличным экземпляром от
aString, и не просто исходный объект с постепенно увеличенным подсчетом ссылок. Изменения в каждый не будет отражен в другом.
