#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. Пробовал, к сожалению, все еще вылетает. Есть еще мысли?