Зависит от того, что вы подразумеваете под «более быстрым» - если это процессор, на который вы ссылаетесь, я бы предположил, что это сложно избить substringWithRange:
, но для надежного и легкого кодирования такой проблемы регулярные выражения могут пригодится.
Вот один, который может быть использован, чтобы разделить строку на 10 символьные куски, позволяя последнюю порцию быть менее 10 символов:
NSString *pattern = @".{1,10}";
К сожалению, реализация Cocoa из регулярных выражений машин меньше но достаточно проста в использовании:
NSString *string = @"I want to split NSString into array with fixed-length parts. How can i do this?";
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern: pattern options: 0 error: &error];
NSArray *matches = [regex matchesInString:string options:0 range:NSMakeRange(0, [string length])];
NSMutableArray *result = [NSMutableArray array];
for (NSTextCheckingResult *match in matches) {
[result addObject: [string substringWithRange: match.range]];
}
Что вы подразумеваете под «manual» или «not manual»? Компьютер является автоматом ... –
Я могу взять свою строку, обрезать ее и циклически поместить обрезанную строку в массив. Проблема в том, что моя строка очень большая, мне нужно разбить ее на 10 000 частей длины строки. Всего этот массив будет содержать более 500 000 объектов. Это действительно огромная строка, поэтому мне нужен более быстрый способ, так как я знаю –
, что волшебный метод, который вы ищете, не существует. В какой-то момент должен быть цикл, копирующий части вашей строки. Даже если это не сделано вами, это будет где-то в коде. –