У меня была очень похожая проблема, я делал приложение, которое должно было читать каждую букву в текстовом представлении, и у меня были проблемы, когда автозаполнение вставляло слова, потому что оно сохраняло его, как если бы оно было одной буквой.
Вы можете добавить каждый символ в массив, а затем проверить, не превышает ли длина какой-либо строки. Или вы можете добавить каждый символ, помещенный в массив, и запустить что-то вроде
NSString *string = text;
NSMutableArray *array = [NSMutableArray new];
for (int i=0; i<string.length; i++) {
[array addObject:[string substringWithRange:NSMakeRange(i, 1)]];
}
для добавления каждого символа по отдельности, сравнивая два массива, которые вы можете определить, было ли использовано автозамена и с каким словом / с.
Надеюсь, это поможет.