Нижний и верхний индексы не являются чертами характера. За немногими исключениями (например, ², ³, ª), именно так отображаются обычные символы - меньшим шрифтом и выше / ниже базовой линии регулярных символов. Имея это в виду, вы не можете иметь «NSString с подписанными символами», равно как и NSString с жирным или курсивным символом.
Таким образом, в результате, если требуемый подписанный символ уже существует в Юникоде, нижний индекс и верхний индекс создаются при отображении строки, а не при создании строки. И это не ограничение iOS, это ограничение способа обработки строк в современных компьютерах.
Что вы делаете с этим NSString? Вы показываете это на UILabel? Вы отправляете это по сети? Вы представляете это как HTML? Обратите внимание, что <sub>
и <sup>
являются тегами HTML; если только NSString не будет интерпретироваться как HTML (скажем, UIWebView), они не будут интерпретироваться как sup / superscript.