Ну, это будет немного грубым методом, но вот мое предположение.
Начните с создания пользовательской функции для преобразования одной буквы текста в целое число меньше 100. (Я не уверен, что такая функция уже существует, если это так, то отлично!) Возможно, вам нужно просто перейти к таким вещам, как "if ([input isEqual: @" a "]) {return 1;}
Затем запустите эту функцию для каждой буквы текста и получите окончательное целое число, объединив предыдущие результаты.
Например:
int myVal1 = [intConverter firstLetter];
int myVal2 = [intConverter secondLetter];
int myVal3 = [intConverter thirdLetter];
int finalValue = 100 ^ 3 + 100 ^ 2 * myVal1 + 100 * myVal2 + myVal3;
Тогда finalValue будет иметь вид 1 (myVal1) (myVal2) (myVal3), что, как я думаю, вы ищете.
Чтобы вернуть исходную строку, просто используйте функции mod (%) и деления, чтобы вернуть отдельные значения, затем запустите функцию intConverter в обратном направлении. (Это, вероятно, будет означать написание новой функции, которая в основном выполняет те операторы if в обратном порядке, ну да ладно.)
Надеюсь, это поможет.