У меня есть NSString
, хранящийся в cell.lblTitle.text
. Я конвертирую это NSString
в NSMutableAttributedString
со следующим кодом.Облицовка сбоя для проверки специального символа в NSMutableAttributedString
text = [[NSMutableAttributedString alloc] initWithData:[cell.lblTitle.text dataUsingEncoding:NSUTF8StringEncoding]
options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: @(NSUTF8StringEncoding)}
documentAttributes:nil error:nil];
[text setAttributes:@{NSFontAttributeName:labelFont} range:NSMakeRange(0, [text length])];
[text addAttribute:NSForegroundColorAttributeName
value:[UIColor darkGrayColor]
range:NSMakeRange(0, [text length])];
При печати cell.lblTitle.text
и его длину в консоли, то следующий мой выход:
po cell.lblTitle.text
Address: HM<MM-
[email protected]
Mobile,
Alabama,
123456-
United States
po [cell.lblTitle.text length]
61
И когда я печатаю текст который является моим NSMutableAttributedString
. Выход в консоли:
po text
Address: HM{
NSColor = "UIDeviceWhiteColorSpace 0.333333 1";
NSFont = "<UICTFont: 0x7aebc0f0> font-family: \"Futura-Medium\"; font-weight: normal; font-style: normal; font-size: 15.00pt";
}
po [text length]
11
Ниже мой журнал аварии:
*** Нагрузочного приложение из-за неперехваченное исключением 'NSRangeException', причина: «NSMutableRLEArray objectAtIndex: effectiveRange :: Из bounds '
Итак, строка после специального символа «<» не идентифицирована, и мое приложение сработает. Как я могу управлять этим специальным символом «<», поэтому я получаю вывод [text length] = 61
.
Любая помощь будет оценена по достоинству.
это () ...? или нет –
Spynet
нет нет на самом деле бирка. в этом случае он рассматривается как особый символ. – iPhone
добавить авария, пожалуйста? – Spynet