UILabels и Unicode

#objective-c #ios #unicode #uilabel

#objective-c #iOS #unicode #uilabel

Вопрос:

Я знаю, что задавались вопросы, подобные этому, но я не нашел удовлетворительного ответа.

Я пытаюсь создать UILabel для отображения уравнения. Однако мне не нравится иметь несколько меток для показателей и нижних индексов, потому что я собираюсь производить вычисления, и позиции показателей и нижних индексов должны будут сместиться для сохранения форматирования. Вместо этого я хотел бы ввести в Юникод формы верхнего и нижнего индексов ‘n’ (0x207F и 0x2099 соответственно) в моей UILabel и соответствующим образом изменить их при изменении ответов. Я искал некоторое время, и я не смог найти ответ. Есть ли способ сделать это?

Ответ №1:

вы можете назначить unicode в uilabel следующим образом —

 [yourLabel settext:@"u207F and u2099"];
  

Ответ №2:

Вы можете использовать %C спецификатор формата для unicode.

 myLabel.text = [NSString stringWithFormat:@"String with unicode %C", 0x207F];
  

Комментарии:

1. Когда я запускаю это, программа вылетает. Вот мой код: solutionString = [NSString stringWithFormat: @»a% C = % @ * % @%C — % @ * n *% @%C», 0x2099, [solutionSet objectAtIndex: 1], [solutionSet objectAtIndex: 0], 0x207f, [solutionSet objectAtIndex: 2], [solutionSet objectAtIndex: 0], 0x207f];

2. Что это за аварийное сообщение? Каково содержимое solutionsSet?

3. В консоли не отображается сообщение об ошибке. Приложение просто вылетает. solutionsSet представляет собой массив NSNumbers.

4. Если объекты в solutionSet являются NSNumbers, то вы не можете использовать %@ в качестве спецификатора формата. %@ означает NSString. Вам нужно преобразовать ваш NSNumber в NSString. Попробуйте [[solutionsSet objectAtIndex:1] stringValue].

5. Пробовал, к сожалению, все еще вылетает. Есть еще мысли?