Этот вопрос немного сложен, если учесть интернационализацию. Например, если вы идете по маршруту «тупой алгоритм» и просто берете символы, любой многобайтовый символ будет испорчен. Вероятно, это самый близкий простой алгоритм, который вы можете использовать для правильной работы с разными языками:
- (NSArray *)arrayOfCharacters {
int startIndex = 0;
NSMutableArray *resultStrings = [NSMutableArray array];
while (startIndex < [self length]) {
NSRange characterRange = [self rangeOfComposedCharacterSequenceAtIndex:startIndex];
[resultStrings addObject:[self substringWithRange:characterRange]];
startIndex += characterRange.length;
}
return [[resultStrings copy] autorelease];
}
Хотя это далеко от совершенства - не все языки считают символы одинаково, как мы.