NSString класс

Введение

Обзор

Класс NSString объявляет программный интерфейс для объекта, который управляет неизменной строкой. Неизменной строкой является текстовая строка, которая определяется при ее создании и в дальнейшем не может быть изменена. NSString осуществляется для представления массива знаков в кодировке Юникод, другими словами, текстовой строки.

Изменяемым подклассом NSString является NSMutableString.

Класс NSString имеет два примитивных метода - length и characterAtIndex:, которые обеспечивают основу для всех других методов в его интерфейсе. length метод возвращает общее количество Unicode символов в строке. characterAtIndex: предоставляет доступ к каждому символу в строке по индексу, со значения индекса начинающегося с 0.

NSString объявляет методы для поиска и сравнения строк. Он также объявляет, методы для чтения числовых значений из строк, для различных объединений строк, и для преобразования строки в различных формах (таких, как кодирование и изменение регистра).

Приложение также использует комплект NSParagraphStyle и его подкласс NSMutableParagraphStyle для инкапсуляции параграфов или исправителя атрибутов, используемых NSAttributedString классов.

NSString является "мостом" с его Core Foundation коллегой CFString. Это означает, что типы Core Foundation являются взаимозаменяемыми в функциях или методах вызовов из объектов Foundation. Таким образом, в методе, в котором вы видите параметр NSString *, вы можете передать CFStringRef, а в функции, где вы видите CFStringRef параметр, вы можете передать экземпляр NSString (Вы бросаете один тип в другой, чтобы подавить предупреждения компилятора). Это также относится и к вашим подклассам NSString.

Строковые объекты

NSString объекты представляют собой строки символов в framework-е. Представление строк в качестве объектов позволяет использовать строки, там где бы вы могли использовать и другие объекты. Они также обеспечивают преимущества инкапсуляции, таким образом, чтобы строковые объекты могли использовать любую кодировку и для эффективности, просто появлялись как массивы символов. Два кластера общих классов, NSString и NSMutableString объявляют, программный интерфейс для неизменяемых и редактируемых строк, соответственно.

Примечание: неизменной строкой является текстовая строка, которая определяется при ее создании и в дальнейшем не может быть изменена. Неизменная строка реализована в виде массива символов кодировки Юникод (другими словами, текстовая строка). Для создания и управления неизменяемыми строками, используется класс NSString. Чтобы создать и управлять строкой, которая может быть изменена после ее создания, используют NSMutableString.

Объекты, которые вы создаете, используя NSString и NSMutableString называются строковыми объектами (или, если не приведет к путанице, просто строки). Строковый термин C ссылается на стандартный тип char *. Из-за своей классовой природы кластеров, строковые объекты не являются фактическими экземплярами NSString или NSMutableString классов, а одним из своих частных подклассов. Хотя класс строкового объекта является частным, его интерфейс является публичным, как это заявлено в абстрактных суперклассах, NSString и NSMutableString. Строчный класс принмает протоколы NSCopying и NSMutableCopying, что делает его удобным для преобразования строки из одного типа в другой.

Понятие символов

Строковый объект представляет из себя массив знаков Юникод (Unicode является зарегистрированной торговой маркой Unicode, Inc.) Вы можете определить, сколько содержится символов в строке объекта с помощью метода length и может получить конкретный символ с методом characterAtIndex:. Эти два "примитивных" метода обеспечивают базовый доступ в строковому объекту.

Интерпретация кодировки UTF-16

При создании объекта NSString из строки в кодировке UTF-16 (или потока байт интерпретируемого как UTF-16), если в порядке байт не указано иное, NSString предполагает, что UTF-16 символы выстроены от старшего к младшему, если нет BOM (метка порядка следования байтов), и в этом случае спецификация определяет порядок байтов. При создании объекта NSString из массива символов Unicode, возвращаемая строка всегда имеет нативный порядок байтов, так как массив всегда содержит символы Юникода в нативном (родном) порядоке байтов.

Распределенные объекты

За пределы объектов, изменяемые строковые объекты передаются по ссылке, а неизменяемые передаются как копии.

Подклассы

Возможна реализация подкласса NSStringNSMutableString), но для этого требуется предоставление места для строки (что не наследуются подклассами) и реализации двух примитивных методов. Абстрактные классы NSString и NSMutableString предоставляют открытый интерфейс класса кластера, состоящего в основном из частных, конкретных классов, которые создают и возвращают строковый объект подходящий для данной ситуации. Создание Вашего собственного конкретного подкласса этого кластера накладывает определенные требования.

Убедитесь, что ваши причины для наследования NSString являются значимыми. Экземпляры подкласса должны представлять строку, а не что-то еще. Таким образом, только атрибуты подкласса должны иметь доступ к длине символьного буфера, а также доступ к отдельным символам в буфере. Уважительными причинами для принятия подкласса NSString является предоставление другого способа хранения (возможно, для лучшей производительности) или осуществления каких-либо аспектов поведения объекта, например таких как управление памятью. Если Ваша цель заключается в добавлении несущественных признаков или метаданных к своим подклассам NSString, лучшей альтернативой будет составной объект. Cocoa уже предоставляет пример этого с классом NSAttributedString.

Перегрузка методов

В любом подклассе NSString необходимо переопределить примитивные методы экземпляра length и characterAtIndex. Эти методы должны работать на резервном буфере, который вы предоставляете для символов строки. В качестве резервного буфера можно использовать статический массив, динамически выделенный буфер, стандартный объект NSString, или какой-либо другой тип данных или механизм. Вы можете также выбирать, как переопределять, частично или полностью, реализацию любого другого метода NSString, чтобы обеспечить альтернативную реализацию. Например, для лучшей производительности рекомендуется, чтобы вы переопределили getCharacters:range: и дали ему более быструю реализацию.

Обратите внимание, что вам не следует переопределять hash-метод.

Методы:

Создание и инициализация

string
init
initWithBytes:length:encoding:
initWithBytesNoCopy:length:encoding:freeWhenDone:
initWithCharacters:length:
initWithCharactersNoCopy:length:freeWhenDone:
initWithString:
initWithCString:encoding:
initWithUTF8String:
initWithFormat:
initWithFormat:arguments:
initWithFormat:locale:
initWithFormat:locale:arguments:
initWithData:encoding:
stringWithFormat:
localizedStringWithFormat:
stringWithCharacters:length:
stringWithString:
stringWithCString:encoding:
stringWithUTF8String:
stringWithCString:
stringWithCString:length:
initWithCString:
initWithCString:length:
initWithCStringNoCopy:length:freeWhenDone:

Создание и инициализация из файла

stringWithContentsOfFile:encoding:error:
initWithContentsOfFile:encoding:error:
stringWithContentsOfFile:usedEncoding:error:
initWithContentsOfFile:usedEncoding:error:
stringWithContentsOfFile:
initWithContentsOfFile:

Создание и инициализация из URL

stringWithContentsOfURL:encoding:error:
initWithContentsOfURL:encoding:error:
stringWithContentsOfURL:usedEncoding:error:
initWithContentsOfURL:usedEncoding:error:
stringWithContentsOfURL:
initWithContentsOfURL:

Запись в файл или URL

writeToFile:atomically:encoding:error:
writeToURL:atomically:encoding:error:
writeToFile:atomically:
writeToURL:atomically:

Получение длинны строки

length
lengthOfBytesUsingEncoding:
maximumLengthOfBytesUsingEncoding:

Получение символов и байтов

characterAtIndex:
getCharacters:range:
getBytes:maxLength:usedLength:encoding:options:range: remainingRange:
getCharacters:

Получение C строки

cStringUsingEncoding:
getCString:maxLength:encoding:
UTF8String
cString
cStringLength
getCString:
getCString:maxLength:
getCString:maxLength:range:remainingRange:
lossyCString

Объединение строк

stringByAppendingFormat:
stringByAppendingString:
stringByPaddingToLength:withString:startingAtIndex:

Разделение строк

componentsSeparatedByString:
componentsSeparatedByCharactersInSet:
stringByTrimmingCharactersInSet:
substringFromIndex:
substringWithRange:
substringToIndex:

Поиск символов и подстрок

rangeOfCharacterFromSet:
rangeOfCharacterFromSet:options:
rangeOfCharacterFromSet:options:range:
rangeOfString:
rangeOfString:options:
rangeOfString:options:range:
rangeOfString:options:range:locale:
enumerateLinesUsingBlock:
enumerateSubstringsInRange:options:usingBlock:

Замена подстрок

stringByReplacingOccurrencesOfString:withString:
stringByReplacingOccurrencesOfString:withString:options:range:
stringByReplacingCharactersInRange:withString:

Определение диапазонов строк и абзацев

getLineStart:end:contentsEnd:forRange:
lineRangeForRange:
getParagraphStart:end:contentsEnd:forRange:
paragraphRangeForRange:

Определение составленной последовательности символов

rangeOfComposedCharacterSequenceAtIndex:
rangeOfComposedCharacterSequencesForRange:

Преобразование содержимого строки в список свойств

propertyList
propertyListFromStringsFileFormat

Идентификация и сравнение строк

caseInsensitiveCompare:
localizedCaseInsensitiveCompare:
compare:
localizedCompare:
compare:options:
compare:options:range:
compare:options:range:locale:
localizedStandardCompare:
hasPrefix:
hasSuffix:
isEqualToString:
hash

Складные Строки

stringByFoldingWithOptions:locale:

Получение общих префиксов

commonPrefixWithString:options:

Изменение регистра

capitalizedString
lowercaseString
uppercaseString

Получение строк с нормализацией

decomposedStringWithCanonicalMapping
decomposedStringWithCompatibilityMapping
precomposedStringWithCanonicalMapping
precomposedStringWithCompatibilityMapping

Получение числовых значений

doubleValue
floatValue
intValue
integerValue
longLongValue
boolValue

Работа с кодировками

availableStringEncodings
defaultCStringEncoding
localizedNameOfStringEncoding:
canBeConvertedToEncoding:
dataUsingEncoding:
dataUsingEncoding:allowLossyConversion:
description
fastestEncoding
smallestEncoding

Работа с файловыми путями

pathWithComponents:
pathComponents
completePathIntoString:caseSensitive:matchesIntoArray:filterTypes:
fileSystemRepresentation
getFileSystemRepresentation:maxLength:
isAbsolutePath
lastPathComponent
pathExtension
stringByAbbreviatingWithTildeInPath
stringByAppendingPathComponent
stringByAppendingPathExtension:
stringByDeletingLastPathComponent
stringByDeletingPathExtension
stringByExpandingTildeInPath
stringByResolvingSymlinksInPath
stringByStandardizingPath
stringsByAppendingPaths:

Работа с URL-ами

stringByAddingPercentEscapesUsingEncoding:
stringByReplacingPercentEscapesUsingEncoding:

Лингвистическое связывание и анализирование

enumerateLinguisticTagsInRange:scheme:options:orthography: usingBlock:
linguisticTagsInRange:scheme:options:orthography:tokenRanges:

Приложение

unichar
NSMaximumStringLength
NSStringCompareOptions
Опции поиска и сравнения
NSStringEncodingConversionOptions
Параметры преобразования кодировки строки.
NSString Имена обработки исключений
NSStringEncoding
Строковые кодировки
Параметры строкового перечисления
 
 
homeЗаметили ошибкукарта сайта 
   Made on a Mac