Вы должны позаботиться о том, чтобы сначала вставить черту с самым высоким индексом. Если вы сначала вставляете индекс 4, вам нужно вставить индекс 9 вместо 8 для второго тире.
например. Это не дает желаемой строки ...
NSMutableString *s = [NSMutableString stringWithString:@"abcdefghij"];
[s insertString:@"-" atIndex:4]; // s is now @"abcd-efghij"
[s insertString:@"-" atIndex:8]; // s is now @"abcd-efg-hij"
Пока этот делает:
NSMutableString *s = [NSMutableString stringWithString:@"abcdefghij"];
[s insertString:@"-" atIndex:8]; // s is now @"abcdefgh-ij"
[s insertString:@"-" atIndex:4]; // s is now @"abcd-efgh-ij"