Используйте NSMutableString, а затем для цикла по исходной NSString.
NSMutableString *buffer = [[NSMutableString alloc] init];
int len = [labelText length];
for (i = 0; i < len; i++) {
NSRange charAt = NSMakeRange(i,1);
[buffer appendString: [labelText substringWithRange: charAt]];
if ((i % 3) == 2) {
[buffer appendString: @"\n"];
}
}
labelText = (NSString *)buffer;
Приведенный выше пример - чистый Objective-C.Это также может быть выполнено с помощью C. Преобразуйте строку NSString в строку cstring, а затем выполните цикл по массиву.Например,
const char *str = [labelText UTF8String];
int len = strlen(str) - 1;
int pos = 0;
char buffer[(len * 2) + 1];
for (i = 0; i < len; i++) {
char ch = str[i];
buffer[pos] = ch;
pos++;
if ((i % 3) == 2) {
buffer[pos] = '\n';
pos++;
}
}
buffer[pos] = '\0';
labelText = [NSString stringWithFormat: @"%s", buffer];