2015-08-25 2 views
3

Я нахожу, что если я установил текст UILabel в «ԅ», он сработает без дополнительной информации. Он не попал в точку останова «Все исключение».«ԅ», вызвавший крах приложения iOS

self.label.text = @"ԅԅ"; 

Как я могу избавиться от этой аварии? Заранее спасибо!

Кстати, я нашел эту проблему из-за смайлика «﹃ԅ¯¯ԅ», который описывает то, что я чувствую прямо сейчас.

+0

Забавных в моем случае это ** ** только останавливается на 'Всех Execptions' точки останова, но восстановить из нее - удаления точки останова и нажав' Continue' работает и приложение показывает текст ... –

+0

Какое сообщение об ошибке от аварии? – rmaddy

+0

@rmaddy Я не вижу никаких сообщений об ошибке ... – Hampotato

ответ

5

Не передавайте символ Unicode непосредственно в инициализацию NSString, вместо этого используйте представление кодовой точки в кодировке Unicode. В случае этого персонажа это будет @"\u504".

+0

Спасибо @marekful! Мой следующий вопрос: как я могу узнать, что в NSString есть символ Unicode? Например, если кто-то разместил «﹃ԅ¯¯ԅ», что я должен сделать, чтобы предотвратить этот крах? – Hampotato

+0

Хороший вопрос. Это сложно, поскольку символы Unicode могут быть многобайтными. Этот ответ полезен для вас: http://stackoverflow.com/a/9830070/1207049? – marekful

+0

Также проверьте это http://stackoverflow.com/a/1708346/1207049 – marekful

0

попробовать это:

NSData *strd = [text dataUsingEncoding:NSUTF16StringEncoding]; 
NSString *newStr = [[NSString alloc] initWithData:strd encoding:NSUTF16StringEncoding]; 
Смежные вопросы