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 int
index
) 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
);Параметры
aString
OSString возражают чье содержание для копирования.
Возвращаемое значение
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( char
aChar
, 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
);Параметры
aString
OSString возражают чье содержание для копирования.
Возвращаемое значение
Экземпляр OSString представление тех же символов как
aString
, и с подсчетом ссылок 1;NULL
при отказе.Обсуждение
Новый OSString является отличным экземпляром от
aString
, и не просто исходный объект с постепенно увеличенным подсчетом ссылок. Изменения в каждый не будет отражен в другом.