NSMutableRLEArray objectAtIndex: effectiveRange:: Вне границ

Я пытаюсь присвоить атрибуты 3 последним символам строки newClock, которая @"3:33:23".

Однако я получаю сообщение об ошибке при построении NSRange:

NSMutableAttributedString *mas = [[NSMutableAttributedString alloc]initWithString:newClock];
[mas addAttributes:@{NSForegroundColorAttributeName:[UIColor grayColor],
NSFontAttributeName:[UIFont fontWithName:@"HelveticaNeue-Light" size:12]}
 range:NSMakeRange(newClock.length-3,newClock.length)];

Ответ 1

NSMakeRange (i, j) создает диапазон с местоположением я и длиной j.

Если, например, размер вашей строки равен 10, а ваш диапазон начинается с 5, и вы делаете это:

NSMakeRange(5,10)

Ваш диапазон от 5 до 15, поэтому из вашей строки.

Try:

NSMakeRange(newClock.length-3,3)];