Есть ли встроенный способ получения массивов общих наборов, таких как алфавит, цифры и т. Д. В IOS? - PullRequest
0 голосов
/ 10 февраля 2011

Я бы предположил, что где-то был бы удобный класс, где я мог бы позвонить, скажем

NSArray *alphabet = [SomeClass lowerCaseAlphabet];

вместо того, чтобы записывать это каждый раз. Есть ли такой класс?

Ответы [ 2 ]

0 голосов
/ 20 июня 2011

NSMutableCharacterSet * cset = [NSMutableCharacterSet lowercaseLetterCharacterSet];

Я не знаю, является ли это локализуемым.

0 голосов
/ 10 февраля 2011

Да, быстрый поиск в документах даже вызывает некоторый код, используя NSMutableCharacterSet:

addCharactersInRange: Добавляет к получателю символы, значения Unicode которых находятся в заданном диапазоне.

- (void)addCharactersInRange:(NSRange)aRange

Параметры:

aRange: Диапазон символов для добавления. aRange.location - значение первого добавляемого символа; aRange.location + aRange.length– 1 - это значение последнего. Если aRange.length равен 0, этот метод не имеет никакого эффекта.

Обсуждение

Этот фрагмент кода добавляет к набору символов строчные буквы английского алфавита:

NSMutableCharacterSet *aCharacterSet = [[NSMutableCharacterSet alloc] init];
NSRange lcEnglishRange;

lcEnglishRange.location = (unsigned int)'a';
lcEnglishRange.length = 26;
[aCharacterSet addCharactersInRange:lcEnglishRange];
//....
[aCharacterSet release];

Наличие:

Доступно в iOS 2.0 и более поздних версиях.

/////////

Личное мнение: если вы на какое-то время застряли на этих вещах, часто просто быстрее создать что-то для себя. В этом случае, вероятно, нечего терять, создавая экземпляр NSArray с объектами @ "a", ..., @ "z". Массив из двадцати шести или пятидесяти двух символов не очень большой.

...